[英]Appending [(String, Double)] in Swift
I'm still learning Swift, and I am learning this Stock Web Service tutorial that I found in the Web. 我仍在学习Swift,并且正在学习在Web上找到的此Stock Web Service教程。 I am quite stuck in appending the extracted values from the service to my array.
我非常想将从服务中提取的值附加到数组中。 Below is the sample code.
下面是示例代码。
Array Initialization 数组初始化
private var sampleStocks: [(String, Double)] = [("GOOG", +2.2), ("YHOO", +3.22), ("AAPL", -4.1)];
Appending 追加中
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);
}
I always got this error of "Cannot convert of type [(String, Double)] to expected argument type (String, Double)". 我总是收到“无法将类型[[(String,Double)]转换为预期的参数类型(String,Double)”的错误。
May you please help me and give me a short run through? 您能帮我一下吗?
var me: [(String,Double)]
is an Array. var me: [(String,Double)]
是一个数组。 What you need is a tuple. 您需要的是一个元组。 Declare the
me
variable like this: 像这样声明
me
变量:
var me: (String,Double) = (quoteDict["symbol"] as! String, Double(changeInPercentStringClean)!);
You can use in swift 3.0.2 by: 您可以通过以下方式在Swift 3.0.2中使用:
sampleStocks.append(contentsOf: me)
or 要么
var me: (String,Double) = (quoteDict["symbol"] as! String, Double(changeInPercentStringClean))
sampleStocks.append(me)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.