我有一個Core Data
實體,稱爲狀態有兩個屬性savedMessageID作爲位整數和savedMessageText爲String。難度寫數值回核心數據
我有一個字符串存儲在應用程序在啓動時下載的SQL數據庫中。從數據庫中的字符串分解成兩個部分ID和文本:
NSInteger *newMessageID = [the_ID_as_a_string integerValue];
NSString *newMessageText = the_message_as_a_string;
我再讀取核心數據記錄和比較的ID,看看是否出現了變化。如果下載的ID大於存儲的ID,則顯示新消息。到目前爲止,這工作得很好。
然後我嘗試寫回到核心數據與新的下載的ID。這裏的問題是......人們經常談論的就到這裏我已經知道:
NSEntityDescription *entitydesc = [NSEntityDescription entityForName:@"Status" inManagedObjectContext:context];
NSManagedObject *updatedStatus = [[NSManagedObject alloc]initWithEntity:entitydesc insertIntoManagedObjectContext:context];
[updatedStatus setValue:newMessageID forKey:@"savedMessageID"]; //**error line**
[updatedStatus setValue:newMessageText forKey:@"savedMessageText"];
NSError *error;
[context save:&error];
看來我不能寫回的NSInteger
回Core Data
。我已經嘗試編寫NSNumber,int等,但所有這些標誌問題。任何想法我應該怎麼做?
**我得到的錯誤是不Objective-C的指針NSInteger的*「(又名」詮釋「)到‘身份證’的*隱式轉換是不允許與ARC
您收到的實際錯誤是什麼? –
NSInteger只是一個int類型(在LP64 arch中是很長的),所以如果你通過核心數據如何將其解釋爲NSNumber的地址以外的任何東西?這就是它的工作原理......當你從另一個上下文中讀取時,你得到了什麼錯誤,是否保存失敗,或者是否獲得了你不期望的值? –
錯誤是 - 將非Objective-C指針隱式轉換爲NSInteger *'(aka'int *')爲'id'不允許使用ARC – RGriffiths