2013-07-29 51 views
3

我正在與MagicalRecord版本異常時2.0.7***在+的NSManagedObjectContext MR_defaultContext]斷言失敗試圖截斷

每當我啓動應用程序,它與此異常崩潰:

*** Assertion failure in +[NSManagedObjectContext MR_defaultContext] 

我配置coredata這樣的:

在的appdelegate didFinishLaunchingWithOptions方法:

[MagicalRecord setupCoreDataStack]; 

在的appdelegate applicationWillTerminate:

NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextForCurrentThread]; 

[Song MR_truncateAllInContext:localContext]; 

我缺少的東西:

[MagicalRecord cleanUp]; 

我注意到崩潰只有當我試圖從實體截斷所有記錄發生?上面採用的方法是錯誤的?

編輯

在這條線上發生崩潰:

+ (NSManagedObjectContext *) MR_defaultContext 
{ 
    @synchronized (self) 
    { 
     NSAssert(defaultManagedObjectContext_ != nil, @"Default Context is nil! Did you forget to initialize the Core Data Stack?");//this line 
     return defaultManagedObjectContext_; 
    } 
} 

在NSMnagedObjectContext + MagicalRecord.m文件

+0

你連接了一個調試器嗎?它停在哪條線上? – borrrden

+0

崩潰發生在'NSManagedObjectContext + MagicalRecord.m'文件上,請參閱我的更新 – Malloc

+0

該行似乎很清楚,錯誤是沒有設置默認上下文。看看你的控制檯,並確保正在設置一個默認的上下文。請嘗試使用'setUpCoreDataStackWithStoreNamed:'代替。 – borrrden

回答

1

因此,有別的事情,如果在你指定一個context(localContext),並且你在defaultContext訪問器中崩潰。設置堆棧後,默認上下文不應該爲零。初始化後,您是否自己驗證過?嘗試使用

+[MagicalRecord currentStack] 

查看是否所有設置都正確。

在truncateAllInContext:方法中檢查的一件事是忽略本地上下文並只是要求默認?如果是這樣,那麼這是MagicalRecord中的一個錯誤,並且可能會在更新版本中修復(最新版本爲2.1)

0

是的,如果可以的話,升級MagicalRecord。我遇到了2.1版已經消失的各種問題。其中至少有一個是MagicalRecord發現的Core Data中的一個bug。

+0

嗨,奧托,你可以給我發送固定版本的鏈接,我拉我認爲包含最新版本2.1的主回購,對不對? – Malloc

+0

不知道。我一直在使用Cocoapods,這使得更改版本變得微不足道。我希望主人有2.1或更好,但不知道肯定......它可能是不穩定的東西,據我所知,這是項目特定的。 – Otto

5

將您的核心數據設置爲​​3210在應用程序委託方法之上。