2013-11-22 49 views
0

我第一次嘗試使用CocoaPods和ObjectiveRecord。 ObjectiveRecord's github pageObjectiveRecord無模型錯誤

當我嘗試保存我的對象,我得到以下錯誤:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Cannot create an NSPersistentStoreCoordinator with a nil model' 
*** First throw call stack: 
(
    0 CoreFoundation      0x01aae5e4 __exceptionPreprocess + 180 
    1 libobjc.A.dylib      0x018318b6 objc_exception_throw + 44 
    2 CoreData       0x00023b0e -[NSPersistentStoreCoordinator initWithManagedObjectModel:] + 398 
    3 ObjectiveRecordTest     0x00003691 -[CoreDataManager persistentStoreCoordinatorWithStoreType:storeURL:] + 193 
    4 ObjectiveRecordTest     0x000030f9 -[CoreDataManager persistentStoreCoordinator] + 169 
    5 ObjectiveRecordTest     0x00002dba -[CoreDataManager managedObjectContext] + 106 
    6 ObjectiveRecordTest     0x00003f26 +[NSManagedObjectContext(ActiveRecord) defaultContext] + 86 
    7 ObjectiveRecordTest     0x0000477a +[NSManagedObject(ActiveRecord) create] + 58 
    8 ObjectiveRecordTest     0x00002112 -[ViewController savePressed:] + 82 
    9 libobjc.A.dylib      0x01843874 -[NSObject performSelector:withObject:withObject:] + 77 
    10 UIKit        0x005a10c2 -[UIApplication sendAction:to:from:forEvent:] + 108 
    11 UIKit        0x005a104e -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 61 
    12 UIKit        0x006990c1 -[UIControl sendAction:to:forEvent:] + 66 
    13 UIKit        0x00699484 -[UIControl _sendActionsForEvents:withEvent:] + 577 
    14 UIKit        0x00698733 -[UIControl touchesEnded:withEvent:] + 641 
    15 UIKit        0x005de51d -[UIWindow _sendTouchesForEvent:] + 852 
    16 UIKit        0x005df184 -[UIWindow sendEvent:] + 1232 
    17 UIKit        0x005b2e86 -[UIApplication sendEvent:] + 242 
    18 UIKit        0x0059d18f _UIApplicationHandleEventQueue + 11421 
    19 CoreFoundation      0x01a3783f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15 
    20 CoreFoundation      0x01a371cb __CFRunLoopDoSources0 + 235 
    21 CoreFoundation      0x01a5429e __CFRunLoopRun + 910 
    22 CoreFoundation      0x01a53ac3 CFRunLoopRunSpecific + 467 
    23 CoreFoundation      0x01a538db CFRunLoopRunInMode + 123 
    24 GraphicsServices     0x02e9e9e2 GSEventRunModal + 192 
    25 GraphicsServices     0x02e9e809 GSEventRun + 104 
    26 UIKit        0x0059fd3b UIApplicationMain + 1225 
    27 ObjectiveRecordTest     0x000028ad main + 141 
    28 libdyld.dylib      0x02b4070d start + 1 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 
(lldb) 

這是我的Podfile樣子:

platform :ios 
pod 'ObjectiveRecord' 

我使用新xcworkspace文件,而不是舊的xcode項目文件,我在.pch文件中導入了以下兩個文件:

#import "ObjectiveRecord.h" 
#import <CoreData/CoreData.h> 

我已經在項目的設置頁面添加了核心數據。現在,當我使用github頁面示例提供的代碼時:

Person *john = [Person create]; 
john.name = @"John"; 
[john save]; 

我得到上面的錯誤。我忘了什麼嗎?我一直在尋找一段時間,但我無法弄清楚。

我使用的Xcode 5.0.2和iOS 7

更新: 事實證明,在一般的項目設置,在框架和庫部分,有一個紅色的「libPods。一個「入口。這意味着它缺少,對吧?這可能是問題嗎?

+0

你的項目中是否有.xcdatamodeld文件? – Shmidt

+0

錯誤表示您無法在運行時創建核心數據模型。你如何用ObjectiveRecord做到這一點,我不知道。 –

+0

是的,.xcdatamodeld文件以及我的Person.h對象文件。 – Linus

回答

0

好吧,我通過將我的Model.xcdatamodeld重命名爲appname.xcdatamodeld來解決了錯誤。我不確定它爲什麼解決這個問題,但是,我之前一直將我的模型命名爲「模型」,沒有任何問題,但現在它可以工作。我希望這可以幫助其他人解決這個問題。我也發現紅色的「libPods.a」條目並不意味着它缺失。所以即使它是紅色的,一切都很好。

+0

您可以設置自定義模型名稱而不是重命名。那麼錯誤將被修復 – Deepukjayan

+0

我在哪裏可以設置自定義模型名稱? – Linus

5

從DOC:

定製CoreData模型或.sqlite數據庫

如果您手動新增的核心數據,你可以在CoreDataManager

更改自定義模型和數據庫名稱
[CoreDataManager sharedManager].modelName = @"MyModelName"; 
[CoreDataManager sharedManager].databaseName = @"custom_database_name"; 

https://github.com/mneorr/ObjectiveRecord/blob/master/README.md 閱讀文檔將始終有幫助。