Arrays 在Swift中有数组问题
我正在学习如何构建应用程序,并与Swift合作完成此项目 我有一个朋友帮我从一个网站上提取数据,看起来他用变量创建了类,并将它们映射到特定的扩展名(即“用户名”),所以当我调用变量数据(如profile)时,我会调用它。下面使用luck_30来存储“Stats.luck_30” 因此,在我的一个变量中,这个“Profile”类被设置为一个数组。我可以将数组从类中拉出,但我似乎无法执行for while语句,用for命令中的变量替换[#]Arrays 在Swift中有数组问题,arrays,swift,variables,for-loop,Arrays,Swift,Variables,For Loop,我正在学习如何构建应用程序,并与Swift合作完成此项目 我有一个朋友帮我从一个网站上提取数据,看起来他用变量创建了类,并将它们映射到特定的扩展名(即“用户名”),所以当我调用变量数据(如profile)时,我会调用它。下面使用luck_30来存储“Stats.luck_30” 因此,在我的一个变量中,这个“Profile”类被设置为一个数组。我可以将数组从类中拉出,但我似乎无法执行for while语句,用for命令中的变量替换[#] func aliveWorkers(profile: Pr
func aliveWorkers(profile: Profile) -> NSNumber{
var myworkers : Array = profile.workers!
//this test works and returns the proper value
var testworker: NSNumber = myworkers[0].alive!
println("The satus of the test worker is " + testworker.description)
/* This code is giving error "Could not find member alive" it does not ifor var
for ifor in myworkers{
var thisworker: NSNumber = myworkers[ifor].alive! as NSNumber
}
*/
return 42
}
使用
for in
循环时,循环变量不是索引,而是循环通过的对象。所以
func aliveWorkers() {
var myworkers = [1, 2, 3]
//this test works and returns the proper value
let testworker = myworkers[0]
print("The satus of the test worker is \(testworker)")
for ifor in myworkers {
print(ifor)
}
}
注意一些事情。。。您不需要使用+
来连接这些字符串。您可以使用字符串插值<代码>\(变量)在字符串中插入变量的值
在不更改变量时,尝试使用let
而不是var
。您也不需要显式定义变量的类型。您的变量如果
不是计数器,则它是实际对象。你可以这样做:
for worker in myWorkers {
let workerIsAlive = worker.alive!
}
或者,如果您需要索引
for i in 0 ..< myWorkers.count {
let worker = myWorkers[i]
let workerIsAlive = worker.alive!
}
作为一种风格,我不会使用NSNumber
,而是使用Int
或Bool
或任何实际数据。另外,看起来alive
变量不应该是可选的,因为您正在到处展开它。为了避免以后出现“神秘”崩溃,您可能需要考虑将其设置为非可选类型。谢谢。“为mywokers中的工人”正在工作。我仍在学习,并将审查我现有的代码中的任何这些问题。
for i in 0 ..< myWorkers.count {
let worker = myWorkers[i]
let workerIsAlive = worker.alive!
}
for (i, worker) in enumerate(myWorkers) {
let workerIsAlive = worker.alive!
}