我有一个结构体数组,现在我想创建一个功能,允许我通过索引路径删除结构体。我知道结构是不可变的,所以关于如何解决这个问题有什么建议吗?
我用来解决这个问题的代码行是:arrayOfStruct.removeAtIndex(index)
这导致了错误:类型'[Struct]'的不可变值只有名为'removeAtIndex'的突变成员
(澄清编辑)arrayOfStruct在该类中声明为:
var arrayOfStruct: [Struct] {
return (UIApplication.sharedApplication().delegate as! AppDelegate).arrayOfStruct
}
您已经将AppDelegate memes
属性的访问器声明为计算属性。阅读Swift规范——计算属性确实是只读的。
然而,一个只读的类引用可以被用作内部可写结构的通道。
可能您正在尝试创建一个不那么冗长的访问器。你的快捷方式需要是:
MemeMe/MemeTableViewController.swift,行14-16:
var appDel: AppDelegate {
return (UIApplication.sharedApplication().delegate as! AppDelegate)
}
然后将之前的self.memes
替换为self.appDel.memes
:
MemeMe/MemeTableViewController.swift, 31-33行:
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return appDel.memes.count
}