我从返回数组的API中获取数据,但需要用具有"子级别"的API替换它:
RAW:
ETH:
USD:
TYPE: "5"
MARKET: "CCCAGG"
FROMSYMBOL: "ETH"
TOSYMBOL: "USD"
PRICE: 680.89
CHANGEPCT24HOUR : -9.313816893529749
Run Code Online (Sandbox Code Playgroud)
这是我的结构:
struct Ethereum: Codable {
let percentChange24h: String
let priceUSD: String
private enum CodingKeys: String, CodingKey {
case priceUSD = "PRICE", percentChange24h = "CHANGEPCT24HOUR"
}
}
Run Code Online (Sandbox Code Playgroud)
并实施:
func fetchEthereumInfo(completion: @escaping (Ethereum?, Error?) -> Void) {
let url = URL(string: "https://min-api.cryptocompare.com/data/pricemultifull?fsyms=ETH&tsyms=USD")!
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
guard let data = data else { return }
do {
if let …Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中实现了一个邮件控制器,但是我无法弄清楚为什么在单击“保存草稿”或“删除草稿”时无法关闭它。该窗口卡在了电子邮件屏幕上,我也无法再次单击“取消”。
@IBAction func emailButtonTapped(_ sender: UIButton) {
guard MFMailComposeViewController.canSendMail() else {
if !MFMailComposeViewController.canSendMail() {
print("Can not send email")
return
}
return
}
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
dismiss(animated: true, completion: nil)
}
let mailComposer = MFMailComposeViewController()
mailComposer.mailComposeDelegate = self
mailComposer.setToRecipients(["example@example.com"])
mailComposer.setSubject("Look at this")
mailComposer.setMessageBody("Hello, this is an email from the app I made.", isHTML: false)
present(mailComposer, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud) 我想保存这种arrays有Core Data:
let crypto1 = Cryptos(name: "Bitcoin", code: "bitcoin", symbol: "BTC", placeholder: "BTC Amount", amount: "0.0")
let crypto2 = Cryptos(name: "Bitcoin Cash", code: "bitcoinCash", symbol: "BCH", placeholder: "BCH Amount", amount: "0.0")
Run Code Online (Sandbox Code Playgroud)
这甚至可能吗?
我知道我可以创建一个像这样保存的数组......
let name = "Bitcoin"
let code = "bitcoin"
let symbol = "BTC"
let placeholder = "BTC Amount"
let amount = "0.0"
let cryptos = CryptoArray(context: PersistenceService.context)
cryptos.name = name
cryptos.code = code
cryptos.symbol = symbol
cryptos.placeholder = placeholder
cryptos.amount = amount
crypto.append(cryptos)
PersistenceService.saveContext() …Run Code Online (Sandbox Code Playgroud) 我从API中获取数据以显示在我的iOS应用程序中.这些数据中的一些是百分比,因此当它为负时它显示为-0.98%,例如,没有问题,但为了清楚起见,我希望正变化显示为+0.98而不仅仅是0.98.
这是我更新标签时的代码:
func updateBitcoinUI(with bitcoinInfo: Bitcoin) {
DispatchQueue.main.async {
self.bitcoinPercentageChangeLabel.text = String(format: "%.2f%%", Double(bitcoinInfo.percentChange24h) ?? 0)
}
}
Run Code Online (Sandbox Code Playgroud)
当百分比为正时,有没有办法在字符串中添加+符号?
我有一个在点击按钮时action创建一个alert。
这alert包括两个textfields和两个actions(add和dismiss)。
add如果按钮textfields为空,是否有任何简单的方法可以禁用该按钮(稍后我将检查第二个是否真的是一个 URL,但让我们将重点放在action此处)?
这是我的代码以及到目前为止我尝试过的:
@IBAction func addSourceTapped(_ sender: Any) {
let alert = UIAlertController(title: "Add a News Source", message: nil, preferredStyle: .alert)
alert.addTextField { (textField) in
textField.placeholder = "Name"
}
alert.addTextField { (textField) in
textField.placeholder = "Link"
}
let name = alert.textFields!.first!.text!
let link = alert.textFields!.last!.text!
if name != "" && link != "" {
alert.actions[0].isEnabled = true
}
let …Run Code Online (Sandbox Code Playgroud) 我正在尝试访问indexPath函数内部的数组以更新此数组的数据,但我不知道如何将indexPathas作为参数(尤其是调用时传递的内容)传递给函数,或者这是否是解决方案。
我包括cellForRowAt来说明如何访问此函数indexPath。
var cryptosArray: [Cryptos] = []
extension WalletTableViewController: UITableViewDelegate, UITableViewDataSource, CryptoCellDelegate {
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let crypto = cryptosArray[indexPath.row]
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! WalletTableViewCell
cell.setCrypto(crypto: crypto)
cell.delegate = self
cell.amountTextField.delegate = self
return cell
}
func cellAmountEntered(_ walletTableViewCell: WalletTableViewCell) {
if walletTableViewCell.amountTextField.text == "" {
return
}
let str = walletTableViewCell.amountTextField.text
let crypto …Run Code Online (Sandbox Code Playgroud) 我的div位于视图顶部下方74px,向下滚动时,我希望该div向上移动,直到其固定在顶部的0px处。然后,当我向上滚动页面到顶部时,我想让它回到74px。
这是我到目前为止所拥有的,我对此还很陌生。
function scroll() {
window.addEventListener("scroll", function(event) {
var scroll = this.scrollY;
document.getElementById("listBar").style.top -= scroll;
});
}Run Code Online (Sandbox Code Playgroud)
.listBar {
position: fixed;
top: 74;
}Run Code Online (Sandbox Code Playgroud)
<div id="listBar"></div>Run Code Online (Sandbox Code Playgroud)
我该怎么做?谢谢!
swift ×6
ios ×4
arrays ×2
action ×1
api ×1
codable ×1
core-data ×1
css ×1
email ×1
html ×1
indexpath ×1
javascript ×1
persistence ×1
string ×1
symbols ×1
uialertview ×1
uitableview ×1
uitextfield ×1
xcode ×1