小编Wiz*_*zz 的帖子

期望解码Array <Any>但是找到了一个字典

我从返回数组的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)

api swift codable

5
推荐指数
1
解决办法
2万
查看次数

单击取消,保存草稿或删除草稿时无法关闭邮件视图控制器

我在我的应用程序中实现了一个邮件控制器,但是我无法弄清楚为什么在单击“保存草稿”或“删除草稿”时无法关闭它。该窗口卡在了电子邮件屏幕上,我也无法再次单击“取消”。

@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)

email xcode swift

4
推荐指数
1
解决办法
553
查看次数

将数组保存到CoreData Swift

我想保存这种arraysCore 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)

arrays persistence core-data ios swift

4
推荐指数
1
解决办法
4401
查看次数

在正%变化前添加+符号

我从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)

当百分比为正时,有没有办法在字符串中添加+符号?

string symbols ios swift

2
推荐指数
1
解决办法
98
查看次数

如何根据 UITextField 禁用 UIAlertAction?

我有一个在点击按钮时action创建一个alert

alert包括两个textfields和两个actionsadddismiss)。

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)

action uitextfield uialertview ios swift

2
推荐指数
1
解决办法
1735
查看次数

在Swift函数中访问数组的indexPath

我正在尝试访问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)

arrays uitableview ios swift indexpath

1
推荐指数
1
解决办法
1660
查看次数

使div上下滚动

我的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)

我该怎么做?谢谢!

html javascript css

1
推荐指数
1
解决办法
68
查看次数