我需要将我的数组保存到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) 关闭MagicalRecord注销需要在项目首次包含之前进行#define,但是对于由Cocoapods管理的项目,我无权在Pods项目中添加#define.在这种情况下如何完全关闭注销?
花了几个小时找出办法,在这里张贴,希望它能帮助别人.
编辑:这不是重复,因为它讨论了在Cocoapods下关闭日志
这是代码,我通过魔法记录保存模型:
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
任何人都可以给出5种设置方法的描述吗?
(void) setupCoreDataStack;
(void) setupAutoMigratingDefaultCoreDataStack;
(void) setupCoreDataStackWithInMemoryStore;
(void) setupCoreDataStackWithStoreNamed:(NSString *)storeName;
(void) setupCoreDataStackWithAutoMigratingSqliteStoreNamed:(NSString *)storeName;
Run Code Online (Sandbox Code Playgroud)
它们各自做了什么以及每个用例的用例是什么?
我们一直在尝试调试Core Data多上下文/线程问题,其中将Core Data保存通知合并到我们的主线程NSManagedObjectContext中偶尔会使应用程序崩溃.这导致约2%的应用会话崩溃,我们对如何解决这个问题感到茫然.我们非常感谢任何可能导致此次崩溃的指导或一般建议.
我们有一个Core Data设置,如下所示:
注意这是从[MagicalRecord setupAutoMigratingCoreDataStack]创建的Magical Record v2.3中的默认核心数据堆栈
这是我们的应用程序崩溃的情况:
NSManagedObject在根节省上下文中将JSON解析为s(一些新实体,一些更新的实体)NSManagedObjectContextDidSaveNotification由Core Data广播.主队列上的默认上下文观察它并mergeChangesFromContextDidSaveNotification:使用NSDictionary主线程上的更改进行调用.objectID被发送到无效对象时崩溃(很可能NSManagedObject已被解除分配).这是在私人实施中发生的,NSManagedObjectContext mergeChangesFromContextDidSaveNotification:所以我们不可能看到这里出了什么问题; 在这一点上我们只能告诉我们一个应该存在的对象.

这仅发生在Core Data保存的一小部分上,表明这可能不是我们的Core Data→API堆栈的根本缺陷.此外,没有迹象表明上下文更改中的更改(插入/更新/删除)的大小或类型对崩溃的可能性有任何影响.
core-data objective-c nsmanagedobjectcontext ios magicalrecord
我有一个使用MagicalRecord进行核心数据处理的应用程序,这很好用.但是,我有不同的用户可以在应用程序中登录,当另一个用户登录时,必须清空核心数据数据库,以便不同的用户可以拥有自己的数据.数据库可以完全清空,因为数据也存储在Web服务上,因此在再次登录第一个用户后可以始终再次同步.
到目前为止,我似乎无法找到一个帮助方法(这是有效的)为此目的.我试过了
[MagicalRecord cleanUp];
Run Code Online (Sandbox Code Playgroud)
每当用户注销时,但这不起作用.
我在最后几天都在苦苦挣扎,以便为我使用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 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) 我刚刚开始使用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 MagicalRecord,我的模型有两种配置:

PrefilledConfiguration有四个实体,UserDataConfigurations有六个.现在我想将它们全部合并到默认配置中 - 实现这一目标的最佳方法是什么?
是否需要迁移?如何将所有现有数据传输到新的合并(默认?)配置?
ios ×10
magicalrecord ×10
core-data ×9
objective-c ×4
xcode ×3
swift ×2
arrays ×1
cocoapods ×1
database ×1
icloud ×1