2015-06-29 155 views
0

我有一個名爲Folder的核心數據子類。它有一個名爲items的屬性,它是Item類的NSOrderedSet。我有一個函數返回一個文件夾實例的排序數組,以顯示在UITableView中,但由於以下錯誤,我不能removeAtIndex;類型[AnyObject]的不可變值只有名爲'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] 
} 

} 

我怎樣才能讓我的anyobject可變的數組來刪除該實例的項目?

回答

0

返回類型是不變的常量數組。你應該創建一個數組的副本使其變爲可變的。當你簡單地將它賦值給另一個變量時,值類型被複制到Swift中。

var itemArray = selectedFolder.itemArray() // notice var which makes it mutable 
itemArray.removeAtIndex(indexPath.row) 

然後,使用itemArray然後。

相關問題