ios - Swift:正确初始化和访问数组中的类

标签 ios arrays xcode swift

这是来自 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/

相关文章:

ios - ViewController 的导出 View 首先非零,然后从包加载时为零

ios - 具有独特约束和关系的核心数据-IOS

ios - 如何在 ios 的编辑模式下为单元格上的文本设置动画

c# - 使用 int 变量作为数组选择器时出现 IndexOutOfRange 异常

ios - 尝试解析 JSON 以在应用程序中显示图像

swift - 以编程方式或通过 xcode 将 NSTextView 设置为按字符换行?

ios - 如何在iOS上的mailto正文中插入换行符?

java - 将整数转换为整数数组或二进制

arrays - 从 golang 中的 redash 解码 json 原始数据

ios - 我如何作为团队成员提交 TestFlight 构建