这是来自 Swift Playground ;我想在数组中收集我的“任务”类实例,以便每个任务的属性都可以在 TableView 中使用。我正在搜索文档,但没有看到有关如何正确初始化和访问数组中的类的讨论。
最后一行代码给出了一个错误,显示为AnyObject does not have member named deadline。无论我使用 AnyObjects 的 Swift 数组还是空的 NSMutableArray,都是一样的。我尝试了多种将其转换为整数的方法,但它坚持出现此错误。我是否以错误的方式存储然后访问数据?我是 javascript 头脑,有时语法的相似性会让我产生错觉。
import UIKit
let todays_date = NSDate() // now
let cal = NSCalendar.currentCalendar()
let day_number = cal.ordinalityOfUnit(.CalendarUnitDay, inUnit: .CalendarUnitYear, forDate: todays_date)
var tasks = [] as NSMutableArray
class Task {
var title: String
var interval: Int
var dateActivated: Int
var deadline: Int
var flag_count: Int = 0
var isActivated: Bool = false
init(title: String, dateActivated: Int, interval: Int) {
//initialized by selecting new
self.title = title
self.dateActivated = dateActivated
self.interval = interval
//calculated
self.deadline = dateActivated + interval
}
}
var task1 = Task(title: "Laundry", dateActivated: day_number, interval: 7)
var task2 = Task(title: "Dishes", dateActivated: day_number, interval: 7)
task1.deadline
task2.flag_count
tasks.addObject(task1)
tasks.addObject(task2)
tasks[0].deadline //AnyObject does not have member named deadline
最佳答案
这里不需要使用基础数组,只需将数组声明为 [Task]
(在声明 Task
类之后):
var tasks = [Task]()
然后使用append
代替addObject
:
tasks.append(task1)
tasks.append(task2)
tasks[0].deadline // 83
关于ios - Swift:正确初始化和访问数组中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29090863/