2014-02-24 30 views
0

我想要更新一個NSObject類的值,但是我不知道如何更新整個對象......這就是我想要做的用另一個替換一個NSObject並保存在coredata中

for (Items *item in mutableArrayOfSet) { 
     if ([updatedItem.rowID isEqualToString:item.rowID]) { 

      item = updatedItem; 
    } 
} 

產品我沒有更新過的項目和updatedItem是我試圖使用覆蓋在設置當前項目相同NSObject類類型的......然而,這行代碼

item = updatedItem; 

是給出一個錯誤。

Fast enumeration variables can't be modified in ARC by default; declare the variable __strong to allow this 

任何幫助,將不勝感激。

回答

1

項= updatedItem;

這只是設置迭代變量的值,它不會改變關於mutableArrayOfSet的任何內容。

您應該做的是在迭代過程中創建一組更改,然後在迭代完成後將這些更改保存到源對象中。

0

你可以做的是不使用快速ennumeration。使用正常的循環for

for (int i=0; i<mutableArrayOfSet.length; i++) 
{ 
    item = [mutableArrayOfSet objectAtIndex:i]; 
    .... 
    [mutableArrayOfSet replaceObjectAtIndex:i withObject:updatedItem]; 
} 
0

爲什麼不做你編譯器建議的東西?

for (__strong Items *item in mutableArrayOfSet) { 
     if ([updatedItem.rowID isEqualToString:item.rowID]) { 

      item = updatedItem; 
    } 
}