我正在学习如何构建应用程序并使用 Swift 来完成此项目。
我有一个 friend 帮我从网站上提取数据,看起来他创建了带有变量的类并将它们映射到某些扩展名(IE“用户名”),所以当我调用变量数据(例如配置文件)时,我会调用它。下面使用luck_30能够存储“Stats.luck_30”
luck_30.text = profile.luck_30
因此,在这个“Profile”类中的我的变量之一被设置为一个数组。我可以将数组从类中取出,但我似乎无法使用 for while 语句将 [#] 替换为 for 命令中的变量。
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
}
最佳答案
你的变量ifor
不是一个计数器,它是一个实际的对象。你可以这样做:
for worker in myWorkers {
let workerIsAlive = worker.alive!
}
或者,如果您需要索引,
for i in 0 ..< myWorkers.count {
let worker = myWorkers[i]
let workerIsAlive = worker.alive!
}
如果您两者都需要:
for (i, worker) in enumerate(myWorkers) {
let workerIsAlive = worker.alive!
}
就风格而言,我会远离 NSNumber
并使用 Int
或 Bool
或任何实际数据。另外,看起来 alive
变量不应该是可选的,因为您在任何地方都将其展开。为了避免以后出现“神秘”崩溃,您可能需要考虑将其设为非可选类型。
关于arrays - Swift 中存在数组问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31307584/