2011-12-21 69 views
3

我不知道發生了什麼,但它突然崩潰在Visibility.m實體類的以下行。我沒有改變這些類的任何東西,它曾經完美地工作。唯一的問題是我錯誤地刪除了模型。我已經從備份中恢復它並將其重新添加到項目中。應用程序在executeFetchRequest上崩潰

vis = [[context executeFetchRequest:request error:&error] lastObject]; 

這是它周圍的幾行

NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
    request.entity = [NSEntityDescription entityForName:@"Visibility" inManagedObjectContext:context]; 
request.predicate = [NSPredicate predicateWithFormat:@"visID = %@",[tmpDict objectForKey:@"visiID"]]; 

NSError *error = nil; 
vis = [[context executeFetchRequest:request error:&error] lastObject]; 

失敗時它不顯示在控制檯中的任何錯誤,也沒有任何其他線索。它跳轉到該行主要

int retVal = UIApplicationMain(argc, argv, nil, nil); 

這是所有...

我如何能提高調試或使任何提示?我也嘗試刪除模擬器中的應用程序,但也沒有解決問題。

AAH最後,我得到一個錯誤信息

Catchpoint 6 (exception thrown).2011-12-22 07:39:08.665 CaveConditions[14452:5b07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'keypath visID not found in entity <NSSQLEntity Visibility id=9>' 
*** First throw call stack: 
(0x3446a8bf 0x346ba1e5 0x32f6d103 0x32f6cddf 0x32f6ca39 0x32f6c0fb 0x32f6bb93 0x32f6b031 0x32f697f5 0x6b13 0x62a1 0x107d1 0x4293 0x343c9803 0x53b99 0x541b1 0x343c922b 0x4df85 0x35dc0a91 0x35e545a1 0xc1d 0xad8) 
terminate called throwing an exception[Switching to process 7171 thread 0x1c03] 
[Switching to process 7171 thread 0x1c03] 

不過的keyPath是存在的......我認爲有一些腐敗現象...我怎樣才能解決這個問題?

+0

當應用程序崩潰時,您在控制檯中收到什麼消息? – paulbailey 2011-12-21 21:20:47

+0

絕對沒有。我添加了一個異常處理程序,它將停止在上述行。我就是這樣。 – Chris 2011-12-21 22:02:42

+1

該屬性可以在'Visibility'類中聲明,但是您確定屬性'visID'存在於模型的實體中嗎? – 2011-12-22 20:21:18

回答

2

我的模型中缺少visID。看起來像我從備份中獲取舊版本