从Structs数组中移除一个元素



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

我用来解决这个问题的代码行是:
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
}

相关内容

  • 没有找到相关文章

最新更新