2010-07-25 195 views
0

我通過核心數據工具在http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/CoreDataUtilityTutorial/Articles/00_introduction.html#//apple_ref/doc/uid/TP40001800-CH202-TP1核心數據實用程序崩潰

,我無意中發現了就行了相當惡劣的崩潰SIG_ABRT讀取工作:

[moc save:&error] 

這是在輸出調試:

2010-07-25 22:24:01.665 CoreDataUtilityTutorial[1607:a0f] -[NSCFNumber timeIntervalSinceReferenceDate]: unrecognized selector sent to instance 0x200022100 
2010-07-25 22:24:01.666 CoreDataUtilityTutorial[1607:a0f] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFNumber timeIntervalSinceReferenceDate]: unrecognized selector sent to instance 0x200022100' 
*** Call stack at first throw: 
(
    0 CoreFoundation      0x00007fff87e71cc4 __exceptionPreprocess + 180 
    1 libobjc.A.dylib      0x00007fff840ee0f3 objc_exception_throw + 45 
    2 CoreFoundation      0x00007fff87ecb140 +[NSObject(NSObject) doesNotRecognizeSelector:] + 0 
    3 CoreFoundation      0x00007fff87e43cdf ___forwarding___ + 751 
    4 CoreFoundation      0x00007fff87e3fe28 _CF_forwarding_prep_0 + 232 
    5 CoreData       0x00007fff881baede -[NSXMLDocumentMap getXMLAttributeValueFromObject:forAttribute:] + 478 
    6 CoreData       0x00007fff881be7c8 -[NSXMLDocumentMap nodeFromManagedObject:objectIDMap:] + 1160 
    7 CoreData       0x00007fff881bb67c -[NSXMLDocumentMap addObject:objectIDMap:] + 140 
    8 CoreData       0x00007fff8817d400 -[NSMappedObjectStore _addObject:objectIDMap:] + 32 
    9 CoreData       0x00007fff8817c98f -[NSMappedObjectStore executeSaveChangesRequest:withContext:] + 1343 
    10 CoreData       0x00007fff88177599 -[NSMappedObjectStore executeRequest:withContext:] + 105 
    11 CoreData       0x00007fff88145051 -[NSPersistentStoreCoordinator(_NSInternalMethods) executeRequest:withContext:] + 545 
    12 CoreData       0x00007fff88179123 -[NSManagedObjectContext save:] + 323 
    13 CoreDataUtilityTutorial    0x00000001000015b7 main + 303 
    14 CoreDataUtilityTutorial    0x0000000100000cac start + 52 
    15 ???         0x0000000000000001 0x0 + 1 
) 
terminate called after throwing an instance of 'NSException' 

任何人有想法嗎?我重新檢查了代碼,看看我是否錯誤輸入了一些內容,但沒有錯誤...

在此先感謝。

回答

0

如果沒有您的實際代碼,這是黑暗中的狂野刺戳,但它看起來好像您的商店在某個關口配置不當。具體來說,它看起來好像運行時期待一個日期,但商店有一個數字。

這可能是因爲在不進行完全重新編譯的情況下對模型進行更改(可能)。

它當然可以是完全不同的東西,但沒有您的特定代碼,或者至少與本教程提供的完成的示例項目相比較,這很難排除故障。 (另一個不是不可能的替代方案是,本教程是爲了假設特定的早期版本的Mac OS X,如10.4或10.5而編寫的,這也可能導致問題,尤其是如果Core的默認設置數據項目已經發生了變化,這是因爲在SQLite商店中使用了XML存儲。)

+0

就是這樣!當它應該被設置爲整數32時,processID字段被設置爲日期類型。我的錯。 :) 謝謝! – pedroremedios 2010-07-26 14:14:50

-1

看起來崩潰是在XML代碼中的某處,而不是核心數據代碼。

+0

我在考慮他使用XML支持核心數據。 – 2010-07-25 22:18:16