【发布时间】:2017-03-27 06:34:40
【问题描述】:
我仍在学习 Swift,并且正在学习我在网上找到的 Stock Web Service 教程。我非常坚持将服务中提取的值附加到我的数组中。下面是示例代码。
数组初始化
private var sampleStocks: [(String, Double)] = [("GOOG", +2.2), ("YHOO", +3.22), ("AAPL", -4.1)];
追加
let values = (notification.userInfo as! Dictionary<String,NSArray>)
let stocksReceived:NSArray = values[constantNotifUpdate]!;
sampleStocks.removeAll();
for quote in stocksReceived {
let quoteDict:NSDictionary = quote as! NSDictionary;
var changeInPercentString = quoteDict["ChangeinPercent"] as! String;
let changeInPercentStringClean: String = changeInPercentString.substring(to: changeInPercentString.index(before: changeInPercentString.endIndex));
var me: [(String,Double)] = [(quoteDict["symbol"] as! String, Double(changeInPercentStringClean))];
sampleStocks.append(me);
}
我总是收到“无法将类型 [(String, Double)] 转换为预期参数类型 (String, Double)”的错误。
能否请您帮我做一个简短的介绍?
【问题讨论】:
-
你需要使用 sampleStocks.append(contentsOf: me)
-
如果你真的想学习 Swift 寻找更好的教程,例如那些建议使用自定义结构而不是元组并且不使用分号和
NSDictionary / NSArray和冗余类型注释。