我试图遍历多个数组,然后将所有内容放入另一个数组中。
这是我要循环学习的课程:
class Place {
var names = [String]()
var messages = [String]()
var latidudes = [Double]()
var longitudes = [Double]()
var locations = [CLLocationCoordinate2D]()
}
这是我的职责:
private func placesArrayLoop() {
let CoffeeShopNames = ["aCoffee","bCoffee", "cCoffee"]
let messages = ["message0", "message1", "message2"]
let latitudes = [40.232320, 40.232321, 40.232322]
let longitudes = [-95.388069, -95.388068, 95.388067]
for (name, message, latitude, longitude) in zip(CoffeeShopNames, messages, latitudes, longitudes) {
let place = Place()
place.names.append(name)
place.messages.append(message)
place.latitudes.append(latitude)
place.longitudes.append(longitude)
}
}
它给了我一个错误,“调用中指向zip数组行纬度的额外参数。我假设这是swift 3新出现的语法错误,但我已经四处查看,找不到如何修复它。但是下面的代码有效。。。
let strArr1 = ["Some1", "Some2", "Some3"]
let strArr2 = ["Somethingelse1", "Somethingelse2", "Somethingelse3"]
for (e1, e2) in zip(strArr1, strArr2) {
print("\(e1) - \(e2)")
}
所以现在我真的很困惑。
最佳答案
zip()
函数只接受两个参数(因此第二个示例的工作原理)。
http://swiftdoc.org/v3.0/func/zip/
你试图传递四个论点。