我有一个名为Folder
的核心数据子类。它有一个名为items的属性,它是NSOrderedSet
类的Item
。我有一个函数返回一个已排序的Items数组,用于在UITableView
中显示的文件夹实例,但由于以下错误,我无法removeAtIndex
;
类型[AnyObject]的不可变值仅具有命名的变异成员 'removeAtIndex'
从表格视图中删除项目时,这是针对以下代码的。
context.deleteObject(selectedFolder.itemArray()[indexPath.row] as NSManagedObject )
selectedFolder.itemArray().removeAtIndex(indexPath.row) //error occurs here
这是我创建函数的子类的代码:
class Folder: NSManagedObject {
@NSManaged var title: String
@NSManaged var details: String
@NSManaged var date: NSDate
@NSManaged var item: NSOrderedSet
func itemsArray() -> [Item] {
let sortDescriptor = NSSortDescriptor(key: "date", ascending: true)
return item.sortedArrayUsingDescriptors([sortDescriptor]) as! [Item]
}
}
如何使我的任何对象数组可变以删除实例的项目?
答案 0 :(得分:0)
返回类型是不可变的常量数组。您应该创建数组的副本以使其可变。当您将其简单地分配给另一个变量时,将在Swift中复制值类型。
var itemArray = selectedFolder.itemArray() // notice var which makes it mutable
itemArray.removeAtIndex(indexPath.row)
然后,在之后使用itemArray。