2012-10-16 77 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