Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays SWIFT:从结构数组中删除项_Arrays_Swift_Struct - Fatal编程技术网

Arrays SWIFT:从结构数组中删除项

Arrays SWIFT:从结构数组中删除项,arrays,swift,struct,Arrays,Swift,Struct,我有一个结构数组,现在我想创建允许我按索引路径删除结构的功能。我知道结构是不可变的,所以有没有关于如何解决这个问题的建议 我用来解决这个问题的代码行是: arrayOfStruct.removeAtIndex(index) 这导致了错误:“[Struct]”类型的不可变值只有名为“removeAtIndex”的变异成员 [澄清编辑] arrayOfStruct在此类中声明为: var arrayOfStruct: [Struct] { return (UIApplication.sha

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

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

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.appDel.memes
之前,您曾经拥有的
self.memes

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

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return appDel.memes.count
}

这很可能意味着
arrayOfStruct
被声明为一个常量,使用
let
而不是
var
。我认为这也是问题所在,但它被声明为:var arrayOfStructs=[structClass](),那么需要一个最小的(!)自包含示例来展示这个问题。。。,数组是在appDelegate文件中声明的,我希望从该文件中删除一项array@OctavioAntonioCede尼诺:我不想听起来粗鲁,但我想我现在已经说了我认为应该做什么。现在轮到你用必要的信息更新问题,而不是在私人线程中讨论它。