Tag: core data

MagicalRecord(CoreData)+今日扩展(iOS8)…他们会玩吗?

希望你能帮忙。 我将Today支持添加到我的应用程序,该应用程序使用MagicalRecord https://github.com/magicalpanda/MagicalRecord来pipe理我所有的CoreData资料。 我正在试图理解如何将我的数据展现在Today扩展中。 我已经启用了应用程序组,如http://blog.sam-oakley.co.uk/post/92323630293/sharing-core-data-between-app-and-extension-in-ios-8但是所有的文档和我正在阅读的StackOverflowpost与直接使用CoreData有关。 MagicalRecord为你做了很多艰苦的工作,这就是为什么我使用它,因为在这个项目开始的时候,我完全不知道这些。 所以这样的事情: 在你初始化你的核心数据栈的地方,你将会添加一个商店到你的persistentStoreCoordinator中,像这样: [persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error] 这只是一个改变你以前的storeURL值(通常NSDocumentDirectory中的某个地方)到共享应用程序组文件夹中包含的位置的问题。 你这样做使用 containerURLForSecurityApplicationGroupIdentifier: NSURL *directory = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.YourGroupName"]; NSURL *storeURL = [directory URLByAppendingPathComponent:@"YourAppName.sqlite"]; …我不了解如何/在哪里实施。 我想我只需要在我的扩展中设置MagicalRecord堆栈,就像我在我的appDelegate中那样,但是当然这是失败的。 真的希望有人可能会有类似的情况,并能够说明如何推进这一点。 任何你需要我发布的代码只是让我知道。 提前致谢

在CoreData保存之前识别哪些字段已经改变

//设置通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dataChanged:) name:NSManagedObjectContextDidSaveNotification object:context]; //后来 – (void)dataChanged:(NSNotification *)notification{ NSDictionary *info = notification.userInfo; NSSet *insertedObjects = [info objectForKey:NSInsertedObjectsKey]; NSSet *deletedObjects = [info objectForKey:NSDeletedObjectsKey]; NSSet *updatedObjects = [info objectForKey:NSUpdatedObjectsKey]; 无论如何,从更新的对象确定哪些字段实际上被改变了吗? 谢谢,迈克尔

coredata ios8崩溃

我在保存时遇到了CoreData崩溃: 2014-09-16 09:51:58.273 My_app[2678:105246] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString appendString:]: nil argument' *** First throw call stack: ( 0 CoreFoundation 0x00000001087413f5 __exceptionPreprocess + 165 1 libobjc.A.dylib 0x00000001083dabb7 objc_exception_throw + 45 2 CoreFoundation 0x000000010874132d +[NSException raise:format:] + 205 3 CoreFoundation 0x000000010871274f mutateError + 159 4 CoreData 0x000000010672ae56 -[_NSSQLGenerator prepareMasterReorderStatementPart2ForRelationship:] + 118 […]

无效的更新:节中的行数无效

我正在使用Microsoft Azure services的项目。 在删除一行时,我得到这个错误: Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid update: invalid number of rows in section 0. The number of rows contained in an existing section after the update (2) must be equal to the number of rows contained in that section before the update (2), plus or minus the number […]

iOS 4核心数据…多任务的变化?

我有一个问题,我仔细阅读并彻底了解了iOS Core Data的教程 。 问题是,当我编码的一切,并在多任务iOS 4上运行..程序崩溃时,我重新打开它(杀死任务从快速应用程序切换和重新启动) 然后,我很好奇,重新编码在iPad上(因为它不支持多任务),它工作正常… … – 我去探索升技,有人说,快速的应用程序切换杀应用程序就像OSX杀应用程序,并且委托文件中有applicationTerminate方法,可能需要一些更改(基于评论)。 在这个问题上有人能够启发我吗? 有什么额外的,我需要做的核心数据来支持多任务function.. 谢谢! 更新 好吧,但我没有得到的是..一旦我杀了应用程序..去快速应用程序切换,杀死它…当我重新运行应用程序..它坠毁..我需要添加一些东西到多任务方法? 即使它有一个button的基本应用程序崩溃…什么是我必须保存的状态? 更新 该应用程序自行冻结 更新 好吧,我的坏,尽我所能,为一个button的应用程序…我坚持一个button在那里,每次点击,它打印NSLog和标签。 当我build立和运行它,它工作正常,点击它通常打印。 然后当我重新启动应用程序,它不再打印到NSLog和崩溃那里0x98a450f0 <+0000> mov $ 0xffffffe1,%eax 0x98a450f5 <+0005>调用0x98a453d8 <_sysenter_trap> 0x98a450fa <+0010> ret 0x98a450fb <+0011> nop 更新 但是,当我打开Iphone模拟器,直接运行程序…没有从Xcodebuild设。它工作得很好,它能够打印该值。 核心数据也是如此。如果我只是从模拟器运行它。 杀死它,重新运行,它工作正常..不知道发生了什么事情

将图像保存到核心数据

我是一个与核心数据相关的新手。 任何人都可以帮助我提供适当的步骤/教程,展示如何将图像保存到核心数据及其回溯。我已经能够存储string数据,但是我的应用程序在尝试保存图像时崩溃。 为了节省: DataEvent *event = (DataEvent *)[NSEntityDescription insertNewObjectForEntityForName:@"DataEvent" inManagedObjectContext:managedObjectContext]; NSURL *url2 = [NSURL URLWithString:@"xxxxxxxxxxxxxxx SOME URL xxxxxxxxxxxx"]; NSData *data = [[NSData alloc] initWithContentsOfURL:url2]; imageSave=[[UIImage alloc]initWithData:data]; NSData * imageData = UIImageJPEGRepresentation(imageSave, 100.0); [event setValue:self.imageSave forKey:@"pictureData"]; 为了回顾: DataEvent *event = (DataEvent *)[eventsArray objectAtIndex:indexPath.row]; UIImage *image = [UIImage imageWithData:[event valueForKey:@"pictureData"]]; UIImageView *imageViewMainBackGround = [[UIImageView alloc] CGRect rect3=CGRectMake(0,2,100.0,100.0); […]

CoreData问题: – :无法识别的select器发送到实例

我刚刚开始使用CoreData,我疯了:(我创build了一个使用CoreData的项目(勾选了框 – 使用CoreData)。创build实体,然后为所有实体创buildNSManagedObject类(我想他们创build实体的“setter”和“getter”方法)。 现在,我#我的AppDeletegate导入所有这些类,并写在我的applicationDidFinishLaunching方法: (订阅是应用程序中的实体之一) NSManagedObjectContext *context = [self managedObjectContext]; Subscriptions *sbs = (Subscriptions *)[NSEntityDescription insertNewObjectForEntityForName:@"Subscriptions" inManagedObjectContext:context]; [sbs setTitle:@"OK"]; [sbs setType:@"Tag"]; [sbs setCode:@"cars"]; NSError *error = nil; if (![context save:&error]) { NSLog(@"Couldn't create the subscription"); } 当我运行这个,我得到这个错误 [NSManagedObject setTitle:]:无法识别的select器发送到实例0x6160550 我不知道为什么会这样。 请帮忙!!! 在此先感谢大家! 添加订阅的标题 Subscriptions.h @interface订阅:NSManagedObject { } @属性(非primefaces,保留)NSString *types; @属性(非primefaces,保留)NSDecimalNumber *读; @属性(非primefaces,保留)NSString *标题; @属性(非primefaces,保留)NSString *代码; […]

将本地Core Data移至iCloud

如何在已经使用本地存储核心数据的应用程序中启用iCloud Core Data? 我试过在我的持久存储选项中使用NSPersistentStoreUbiquitousContentNameKey 。 不幸的是,这个选项启用iCloud,但不会将任何本地数据传输到iCloud。 我似乎无法得到migratePersistentStore:toURL:options:withType:error:要么工作。 我提供了持久性存储,URL,iCloud选项等,它仍然不会将现有的本地数据迁移到iCloud。 以下是我如何使用该方法: – (void)migratePersistentStoreWithOptions:(NSDictionary *)options { NSError *error; self.storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:[NSString stringWithFormat:@"%@.sqlite", self.SQLiteFileName]]; NSPersistentStore *store = [self.persistentStoreCoordinator migratePersistentStore:self.persistentStoreCoordinator.persistentStores.firstObject toURL:self.storeURL options:options withType:NSSQLiteStoreType error:&error]; if (store) NSLog(@"[CoreData Manager] Store was successfully migrated"); else NSLog(@"[CoreData Manager] Error migrating persistent store: %@", error); } 本地存储保持独立于iCloud存储。 如果可能,我想将本地核心数据移动到iCloud,而无需手动传输每个实体。 有任何想法吗? 我可以find很多关于从 iCloud移回本地存储的文章,教程和文章 – […]

迁移持久性商店崩溃

我有一个开关打开或closuresiOS 7应用程序的iCloud。 iCloud同步工作正常。 当iCloud打开时,我将其closures,我称之为: – (void)migrateiCloudStoreToLocalStore { NSError *error; __weak NSPersistentStoreCoordinator *psc = self.managedObjectContext.persistentStoreCoordinator; NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption:@YES, NSPersistentStoreRemoveUbiquitousMetadataOption : @YES}; NSPersistentStore *currentStore = [psc persistentStores][0]; NSLog(@"iCloud Store – %@", currentStore); NSLog(@"Local Store – %@", self.store); [psc migratePersistentStore:currentStore toURL:self.store options:options withType:NSSQLiteStoreType error:&error]; } 我可以看到两个存储都存在,但是当migratePersistentStore:toURL:options:withType:error:被调用时,它仍然崩溃。 这是我得到的错误: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** […]

Coredata performBlock然后返回新的值

如果我使用performBlock保存managedObjectContext,如何返回保存在coredata中的新对象? 要求是,在coredata中添加一个条目,并将其返回。 我的代码是这样的: //create a privateMOC NSManagedObjectContext *private = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType]; //set parentContext [private setParentContext:self.coredataManager.managedObjectContext]; __block Detail *object = nil; [private performBlock:^{ //fetch from the db object = [self.coredataManager insertObjectWithEntityName:NSStringFromClass([Detail class])]; //save the private context NSError *error = nil; if (![private save:&error]) { NSLog(@"Error saving context: %@\n%@", [error localizedDescription], [error userInfo]); } }]; return […]