我正在編寫與服務器通信的應用程序。服務器使用json,所以我把這個json放在我的應用程序中,然後將結果序列化成一個NSMutableDictionary
,然後用它來創建一個新的實體。核心數據僅在iOS 5中發生崩潰
這是代碼:
if (context == nil) {
context = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
}
UserTable *ut = [NSEntityDescription insertNewObjectForEntityForName:@"UserTable" inManagedObjectContext:context];
ut.user = [Diz objectForKey:@"user"];
ut.email = [Diz objectForKey:@"email"];
ut.phone = [Diz objectForKey:@"phone"];
NSError *error = nil;
if (![context save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
}
所有作品完美的的iOS 4.3,iOS的6.0和6.1。在iOS 5.0.1中,此代碼引發了本地化爲[context save:&error]
的exc_bad_Address,或者有時在本地化了ut.phone=[Diz objectForKey:@"phone"]
。我只使用一個上下文(我有測試線程組合與「isMainThread」函數),我可以做什麼?我的錯誤日誌是空的,應用程序只是崩潰。
編輯
感謝您的建議。我已經從設備中刪除我的應用,但我會嘗試進行遷移。我已經啓用了異常斷點,但它是一樣的...應用程序崩潰沒有登錄任何錯誤(我也有NsZombie啓用)。在崩潰期間,綠色斷點設置在Entity「UserTable」的一個屬性上,如果我從保存中刪除該屬性,則在保存功能中設置斷點。
編輯
經過很多測試,我已經檢測到這次崩潰的標準行爲。我的實體UserTable有31個屬性,如果我刪除一個屬性都可以正常工作......我已經嘗試用另一個名稱和其他屬性的名稱重新創建實體,但行爲是相同的......這是什麼意思?實體的屬性數有限制嗎?還有其他建議嗎?
您可以嘗試在所有Objective-C崩潰中設置斷點來幫助調試。 –
你是不是要在你調用'insertNewObjectForEntityForName'的地方寫「contesto」或「context」? –
用crashlog更新你的問題 – 0x8badf00d