标签: magicalrecord

如何将Array保存到CoreData?

我需要将我的数组保存到Core Data.

let array = [8, 17.7, 18, 21, 0, 0, 34]
Run Code Online (Sandbox Code Playgroud)

该数组内的值和值的数量是可变的.

1.我在NSManagedObject类中声明什么?

class PBOStatistics: NSManagedObject, Equatable {
    @NSManaged var date: NSDate
    @NSManaged var average: NSNumber
    @NSManaged var historicAverage: NSNumber
    @NSManaged var total: NSNumber
    @NSManaged var historicTotal: NSNumber
    @NSManaged var ordersCount: NSNumber
    @NSManaged var historicOrdersCount: NSNumber
    @NSManaged var values: [Double]  //is it ok?

    @NSManaged var location: PBOLocation

}
Run Code Online (Sandbox Code Playgroud)

2.我在.xcdatamodel中声明了什么?

在此输入图像描述

3.如何在我的实体中保存?(我使用MagicalRecord)

let statistics = (PBOStatistics.MR_createInContext(context) as! PBOStatistics)
statistics.values = [8, 17.7, 18, 21, 0, 0, 34] //is it enough?
Run Code Online (Sandbox Code Playgroud)

arrays core-data ios magicalrecord swift

72
推荐指数
4
解决办法
5万
查看次数

Cocoapods:关闭MagicalRecord

关闭MagicalRecord注销需要在项目首次包含之前进行#define,但是对于由Cocoapods管理的项目,我无权在Pods项目中添加#define.在这种情况下如何完全关闭注销?

花了几个小时找出办法,在这里张贴,希望它能帮助别人.

编辑:这不是重复,因为它讨论了在Cocoapods下关闭日志

xcode objective-c ios cocoapods magicalrecord

39
推荐指数
3
解决办法
6090
查看次数

NSFetchedResultsController调用didChangeObject删除而不是更新

这是代码,我通过魔法记录保存模型:

MagicalRecord.saveWithBlock({ (localContext) -> Void in
                    var localNotification = CDNotification.MR_findFirstByAttribute("notificationID", withValue: notification.notificationID, inContext: localContext) as CDNotification
                    localNotification.readNumber = NSNumber(bool: true)
                })
Run Code Online (Sandbox Code Playgroud)

调用上面的代码后,调用Delete而不是update:

func controller(controller: NSFetchedResultsController, didChangeObject object: AnyObject, atIndexPath indexPath: NSIndexPath, forChangeType type: NSFetchedResultsChangeType, newIndexPath: NSIndexPath) {
    switch type {
    case NSFetchedResultsChangeType.Insert:
        self.tableView.insertRowsAtIndexPaths([newIndexPath], withRowAnimation: .Fade)
    case NSFetchedResultsChangeType.Update:
        if let cell = self.tableView.cellForRowAtIndexPath(indexPath){
            self.configureCell(cell as TableViewCell, atIndexPath: indexPath, withNotification: object as CDNotification)
        }
        self.tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
    case NSFetchedResultsChangeType.Move:
        self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
        self.tableView.insertRowsAtIndexPaths([newIndexPath], withRowAnimation: .Fade)
    case NSFetchedResultsChangeType.Delete:
        self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
    default:
        return …
Run Code Online (Sandbox Code Playgroud)

core-data nsfetchedresultscontroller ios magicalrecord swift

20
推荐指数
1
解决办法
1362
查看次数

5种魔法记录设置方法有什么区别?

任何人都可以给出5种设置方法的描述吗?

(void) setupCoreDataStack;
(void) setupAutoMigratingDefaultCoreDataStack;
(void) setupCoreDataStackWithInMemoryStore;
(void) setupCoreDataStackWithStoreNamed:(NSString *)storeName;
(void) setupCoreDataStackWithAutoMigratingSqliteStoreNamed:(NSString *)storeName;
Run Code Online (Sandbox Code Playgroud)

它们各自做了什么以及每个用例的用例是什么?

database core-data objective-c ios magicalrecord

18
推荐指数
1
解决办法
3450
查看次数

mergeChangesFromContextDidSaveNotification上的EXC_BAD_ACCESS

我们一直在尝试调试Core Data多上下文/线程问题,其中将Core Data保存通知合并到我们的主线程NSManagedObjectContext中偶尔会使应用程序崩溃.这导致约2%的应用会话崩溃,我们对如何解决这个问题感到茫然.我们非常感谢任何可能导致此次崩溃的指导或一般建议.

我们有一个Core Data设置,如下所示:

核心数据堆栈 注意这是从[MagicalRecord setupAutoMigratingCoreDataStack]创建的Magical Record v2.3中的默认核心数据堆栈

这是我们的应用程序崩溃的情况:

  1. HTTP请求返回JSON
  2. NSManagedObject根节省上下文中将JSON解析为s(一些新实体,一些更新的实体)
  3. Root Saving Context保存到持久存储
  4. NSManagedObjectContextDidSaveNotification由Core Data广播.主队列上的默认上下文观察它并mergeChangesFromContextDidSaveNotification:使用NSDictionary主线程上的更改进行调用.
  5. objectID被发送到无效对象时崩溃(很可能NSManagedObject已被解除分配).

这是在私人实施中发生的,NSManagedObjectContext mergeChangesFromContextDidSaveNotification:所以我们不可能看到这里出了什么问题; 在这一点上我们只能告诉我们一个应该存在的对象.

在此输入图像描述

这仅发生在Core Data保存的一小部分上,表明这可能不是我们的Core Data→API堆栈的根本缺陷.此外,没有迹象表明上下文更改中的更改(插入/更新/删除)的大小或类型对崩溃的可能性有任何影响.

core-data objective-c nsmanagedobjectcontext ios magicalrecord

18
推荐指数
1
解决办法
1833
查看次数

在MagicalRecord中清理(删除)数据库

我有一个使用MagicalRecord进行核心数据处理的应用程序,这很好用.但是,我有不同的用户可以在应用程序中登录,当另一个用户登录时,必须清空核心数据数据库,以便不同的用户可以拥有自己的数据.数据库可以完全清空,因为数据也存储在Web服务上,因此在再次登录第一个用户后可以始终再次同步.

到目前为止,我似乎无法找到一个帮助方法(这是有效的)为此目的.我试过了

[MagicalRecord cleanUp];
Run Code Online (Sandbox Code Playgroud)

每当用户注销时,但这不起作用.

xcode core-data ios magicalrecord

15
推荐指数
4
解决办法
1万
查看次数

如何使用MagicalRecord(核心数据)启动并运行iCloud?

我在最后几天都在苦苦挣扎,以便为我使用MagicalRecord框架管理的数据启用iCloud支持.

我做了关于配置文件的所有内容,以及xCode中的所有设置.在代码而不是调用

[MagicalRecord setupAutoMigratingCoreDataStack];
Run Code Online (Sandbox Code Playgroud)

我在打电话

[MagicalRecord setupCoreDataStackWithiCloudContainer:@"AppIDFromiTunesConnect.com.companyName.myAppName" localStoreNamed:@"whatever"];
Run Code Online (Sandbox Code Playgroud)

我尝试通过在iPhone模拟器上触发iCloud同步来模拟同步.但似乎没有任何事情发生.我在developer.iCloud.com上看不到任何内容.

问题:任何人都有使用MagicalRecord的iCloud启动并运行?你能解释一下如何完成它吗?

xcode core-data ios icloud magicalrecord

14
推荐指数
1
解决办法
1108
查看次数

Xcode 7魔法记录单元测试失败

从Xcode 6.4升级到Xcode 7(现在是7.0.1)后,我的项目在启动单元测试时崩溃了.我的iOS项目正在使用魔法记录,应用程序在此断言崩溃:

    + (NSManagedObjectContext *) MR_defaultContext
{
    @synchronized(self) {
        NSAssert(MagicalRecordDefaultContext != nil, @"Default context is nil! Did you forget to initialize the Core Data Stack?");
        return MagicalRecordDefaultContext;
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经注释掉了我以前的所有测试,这两个测试都显示了相同的行为:

#import <XCTest/XCTest.h>

@interface BadTests : XCTestCase

@end

@implementation BadTests

- (void)setUp {
    [super setUp];
}

- (void)tearDown {
    [super tearDown];
}

- (void)testSanity {
    XCTAssert(1 == 1);
}

@end
Run Code Online (Sandbox Code Playgroud)

#import <XCTest/XCTest.h>
#import <MagicalRecord/MagicalRecord.h>

@interface BadTests : XCTestCase

@end

@implementation BadTests

- (void)setUp {
    [super setUp];
    NSLog(@"*** USING IN …
Run Code Online (Sandbox Code Playgroud)

core-data objective-c ios magicalrecord

13
推荐指数
1
解决办法
660
查看次数

禁用MagicalRecord错误消息和警告

我刚刚开始使用MagicalRecord,这可能是一个愚蠢的问题,但它真的困扰我...我正在使用MagicalRecord和sqlite,当我启动MagicalRecord时,我用过

[MagicalRecord setupCoreDataStackWithStoreNamed:@"OrderSystem.sqlite"];
Run Code Online (Sandbox Code Playgroud)

它产生了以下信息:

2012-10-16 16:54:48.966 OrderSystem [4135:c07] + NSManagedObjectContext(MagicalRecord)MR_contextWithStoreCoordinator: - > Created:Context *MAIN THREAD*

当我尝试使用后台线程使用以下代码存储我的实体时:

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

我收到以下错误消息:

2012-10-16 17:05:20.118 OrderSystem [4523:4603] + MagicalRecord(ErrorHandling)defaultErrorHandler:错误消息:无法完成操作.(可可错误133000.)

2012-10-16 17:05:20.118 OrderSystem [4523:4603] + MagicalRecord(ErrorHandling)defaultErrorHandler:错误域:NSCocoaErrorDomain

2012-10-16 17:05:20.119 OrderSystem [4523:4603] + MagicalRecord(ErrorHandling)defaultErrorHandler:恢复建议:(null)

2012-10-16 17:05:20.119 OrderSystem [4523:4603] -NSManagedObjectContext(MagicalSaves)MR_saveWithErrorCallback:上下文没有变化:上下文 - 没有保存

2012-10-16 17:05:20.120 OrderSystem [4523:c07] -NSManagedObjectContext(MagicalSaves)MR_saveWithErrorCallback: - >保存:*DEFAULT 上下文 主线*

2012-10-16 17:05:20.121 OrderSystem [4523:c07] -NSManagedObjectContext(MagicalRecord)contextWillSave:Context:*DEFAULT 上下文 MAIN THREAD*即将节省.获取新的1个插入对象的永久ID

2012-10-16 17:05:20.142 …

core-data ios magicalrecord

12
推荐指数
3
解决办法
6521
查看次数

如何"合并"核心数据配置?

我正在使用Core Data MagicalRecord,我的模型有两种配置:

在此输入图像描述

PrefilledConfiguration有四个实体,UserDataConfigurations有六个.现在我想将它们全部合并到默认配置中 - 实现这一目标的最佳方法是什么?

是否需要迁移?如何将所有现有数据传输到新的合并(默认?)配置?

core-data ios magicalrecord

12
推荐指数
1
解决办法
186
查看次数