好吧,我瘋了試圖找出這一個,所以我想我會張貼它,看看是否有人知道發生了什麼事。核心數據丟失的對象
我將實體添加到核心數據並檢索它們,並在我的應用程序中完美顯示。但由於某種原因,當我使用NSFetchRequest
來獲取某種類型的所有實體的列表時,它總是返回一個比應該少的對象。我知道該對象是某個地方,因爲我的應用程序可以在應用程序的其他地方顯示數據。另外,我手動檢查了sqlite文件並注意到它也缺少一個對象。如果我的應用程序正在訪問數據,這怎麼可能?
下面是我用來獲取實體的代碼。我在整個應用程序的許多地方都使用這個代碼,它總是返回一個較少的對象,然後真的存在,但是我的應用程序仍然要訪問它。
NSFetchRequest *fetchRequest = [[[NSFetchRequest alloc] init] autorelease];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"MWLocationItem"
inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:nil];
有沒有人知道發生了什麼?請讓我知道是否有任何其他代碼,你想看到。
你如何驗證它有一個較少的對象? fetchedObjects.count? – sosborn
是的。在我的應用程序的某些地方,它會返回正確的數字,然後在其他地方返回少一個。並手動檢查sqlite文件顯示一個對象丟失。 – edc1591
看起來我添加的第一個對象是「缺少的」對象。什麼可能導致它不會出現在sqlite文件中? – edc1591