SWIFT:从结构数组

时间:2015-09-07 20:10:25

标签: arrays swift struct

我有一个结构数组,现在我想创建允许我通过索引路径删除结构的功能。我知道结构是不可变的,所以有关如何解决这个问题的建议吗?

我用来解决这个问题的代码是:

arrayOfStruct.removeAtIndex(index)

这导致了错误:'[Struct]'类型的不可变值只有名为'removeAtIndex'的变异成员

[澄清编辑]

arrayOfStruct在此类中声明为:

var arrayOfStruct: [Struct] {
    return (UIApplication.sharedApplication().delegate as! AppDelegate).arrayOfStruct
}

1 个答案:

答案 0 :(得分:1)

您已将AppDelegate memes属性的访问者声明为计算属性。阅读Swift规范 - 计算出的属性确实是只读的。

但是,只读类引用可用作其中可写结构的直通方式。

可能你正试图让一个不那么冗长的访问者。您的快捷方式需要是:

MemeMe / MemeTableViewController.swift,第14-16行:

var appDel: AppDelegate {
    return (UIApplication.sharedApplication().delegate as! AppDelegate)
}

然后,在用self.memes代替self.appDel.memes之前有override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return appDel.memes.count }

MemeMe / MemeTableViewController.swift,第31-33行:

{{1}}