2012-10-16 87 views
12

我剛開始使用MagicalRecord,這可能是一個愚蠢的問題,但它確實困擾着我...... 我使用MagicalRecord使用SQLite,當我開始MagicalRecord,我用禁用MagicalRecord錯誤消息和警告

[MagicalRecord setupCoreDataStackWithStoreNamed:@"OrderSystem.sqlite"]; 

,它產生了以下信息:

二○一二年十月一十六日16:54:48.966訂單系統[4135:C07] +的NSManagedObjectContext(MagicalRecord)MR_contextWithStoreCoordinator: - >創建:上下文*主線程*

當我試圖使用一個後臺線程來我的實體存儲與下面的代碼:

[MagicalRecord saveInBackgroundWithBlock:^(NSManagedObjectContext *localContext){   
    Menu *localMenu = [menu inContext:localContext];   
    localMenu.name = menu.name; 
    localMenu.menuid = menu.menuid ;   
}]; 

而且我得到了以下錯誤消息:

2012年10月16日17: 05:20.118 OrderSystem [4523:4603] + MagicalRecord(ErrorHandling)defaultErrorHandler:錯誤消息:操作無法完成。 (可可錯誤133000.)

2012年10月16日17:05:20.118訂單系統[4523:4603] + MagicalRecord(ErrorHandling中)defaultErrorHandler:錯誤域:NSCocoaErrorDomain

2012年10月16日17時05分: 20.119訂單系統[4523:4603] + MagicalRecord(ErrorHandling中)defaultErrorHandler:恢復建議:(空)

二○一二年十月一十六日17:05:20.119訂單系統[4523:4603] -NSManagedObjectContext(MagicalSaves)MR_saveWithErrorCallback:中沒有變更上下文 - 不保存

2012-10-16 17:05:20.120 OrderSystem [4523:c07] -NSManagedObjectContext(Magical保存)MR_saveWithErrorCallback: - >保存:* DEFAULT 語境主線程*

2012年10月16日17:05:20.121訂單系統[4523:C07] -NSManagedObjectContext(MagicalRecord)contextWillSave:上下文:*默認上下文主線程*即將保存。獲得永久ID的新的1個插入的對象

2012年10月16日17:05:20.142訂單系統[4523:1303] -NSManagedObjectContext(MagicalSaves)MR_saveWithErrorCallback: - >保存:*後臺保存*語境

2012-10-16 17:05:20.142 OrderSystem [4523:1303] -NSManagedObjectContext(MagicalRecord)contextWillSave:Context:* BACKGROUND SAVE *上下文即將保存。獲取新的1個插入對象的永久ID

當我使用findAll檢查存儲的數據實體時,它似乎存儲在數據庫中。如果我完全關閉應用程序並重新啓動應用程序,實體仍然存在(這表明實體已被永久存儲,而不僅僅存儲在內存中)。所以似乎一切正常,但任何想法是什麼錯誤消息?有什麼辦法可以關閉它們嗎?或解決他們?因爲它阻止了我的其他NSLog ...

謝謝

+2

如果您正在使用的CocoaPods,這是你所需要的:http://stackoverflow.com/questions/15284067/cocoapods-turning-magicalrecord-logging -off/15284069 –

回答

31

找到了。在Prefix.pch文件之前#import "CoreData+MagicalRecord.h"

+1

我們已經改變了即將到來的MagicalRecord 2.3版本的日誌工作方式 - 您可以調用'[MagicalRecord setLogLevel:MagicalRecordLogLevelOff];'(或其他一些級別)來禁用這些日誌消息。對於2.3以前的版本,@ hook38建議的正確方法是禁用日誌記錄。 –

+0

@託尼阿諾德。 Git說我目前的MR代碼在5月14日以「origin/develop」爲準。 MR_ENABLE_ACTIVE_RECORD_LOGGING不再有任何效果,但找不到[MagicalRecord setLogLevel:]。我在MagicalRecord + Options.m中找到了'setLoggingMask:'。我能做些什麼來關閉正常的MR保存日誌記錄輸出或根據需要重新打開它? – chadbag

+0

@chadbag對不起,我不得不改變方法 - 這裏是文檔:https://github.com/magicalpanda/MagicalRecord/wiki/Logging –

2

看起來你仍然有錯誤來解決。我建議在開發過程中不要忽略那些...

+0

一旦我關閉了記錄日誌記錄,就沒有更多的錯誤消息。 – hook38

+25

一旦我停止去看牙醫,沒有更多的蛀牙。 – christophercotton

20

添加#define MR_ENABLE_ACTIVE_RECORD_LOGGING 0如果您在使用豆莢預處理宏 MR_ENABLE_ACTIVE_RECORD_LOGGING添加= 0 以神奇紀錄的項目是這樣的: enter image description here

+1

不幸的是,當我運行'莢update'宏被刪除 – boro

+1

一個'post_install'鉤將幫助:http://stackoverflow.com/a/15284069/242682 – samwize

+0

你救了我的一天! – kokemomuke

6

迅速

MagicalRecord.setLoggingLevel(MagicalRecordLoggingLevel.Off) 

objC

[MagicalRecord setLoggingLevel:MagicalRecordLogLevelOff]; 

把它放在你的AppDelegate當應用程序didFinishLaunchingWithOptions

+1

現在看來它是[MagicalRecord setLoggingLevel:MagicalRecordLoggingLevelOff]; – PaulRBerg