标签: core-data

如何在Xcode中删除旧的/未使用的数据模型版本

如何删除Xcode中的旧数据模型?菜单上禁用该选项.(我想删除的模型尚未向公众发布 - 它们是临时开发模型.)

version-control xcode core-data xcdatamodel

162
推荐指数
3
解决办法
4万
查看次数

每个核心数据关系都必须有反向吗?

假设我有两个实体类:SocialAppSocialAppType

SocialApp我有一个属性:appURL和一个关系:type.

SocialAppType我有三个属性:baseURL,namefavicon.

SocialApp关系的目的地type是单个记录SocialAppType.

例如,对于多个Flickr帐户,会有许多SocialApp记录,每条记录都包含指向某个人帐户的链接.会有一个SocialAppType针对"Flickr的"类型的记录,所有SocialApp记录将指向.

当我使用这个模式构建一个应用程序时,我得到一个警告,即SocialAppType和之间没有反比关系SocialApp.

 /Users/username/Developer/objc/TestApp/TestApp.xcdatamodel:SocialApp.type: warning: SocialApp.type -- relationship does not have an inverse
Run Code Online (Sandbox Code Playgroud)

我需要反转,为什么?

core-data objective-c

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

如何使用UISearchDisplayController/UISearchBar过滤NSFetchedResultsController(CoreData)

我正在尝试在基于CoreData的iPhone应用程序中实现搜索代码.我不知道该怎么办.该应用程序已经有一个带有谓词的NSFetchedResultsController,用于检索主TableView的数据.在改变太多代码之前,我想确保自己走在正确的道路上.我很困惑,因为很多例子都是基于数组而不是CoreData.

以下是一些问题:

  1. 我是否需要第二个NSFetchedResultsController只检索匹配的项目,或者我可以使用与主TableView相同的项目吗?

  2. 如果我使用相同的,它是否像清除FRC缓存然后更改handleSearchForTerm:searchString方法中的谓词一样简单?谓词是否必须包含初始谓词以及搜索词,还是记得它首先使用谓词来检索数据?

  3. 我如何回到原始结果?我只是将搜索谓词设置为nil吗?难道不会杀掉用于首先检索FRC结果的原始谓词吗?

如果有人使用FRC搜索任何代码示例,我将不胜感激!

iphone search core-data uisearchbar uisearchdisplaycontroller

145
推荐指数
6
解决办法
5万
查看次数

将核心数据添加到现有的iPhone项目中

我想将核心数据添加到现有的iPhone项目中,但我仍然遇到很多编译错误:

- NSManagedObjectContext undeclared

 - Expected specifier-qualifier-list before 'NSManagedObjectModel'

 - ...
Run Code Online (Sandbox Code Playgroud)

我已经将核心数据框架添加到目标(右键单击我的项目"Targets","Add" - "Existing Frameworks","CoreData.framework").

我的头文件:

NSManagedObjectModel *managedObjectModel;
NSManagedObjectContext *managedObjectContext;       
NSPersistentStoreCoordinator *persistentStoreCoordinator;

[...]

@property (nonatomic, retain, readonly) NSManagedObjectModel *managedObjectModel;
@property (nonatomic, retain, readonly) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, retain, readonly) NSPersistentStoreCoordinator *persistentStoreCoordinator;
Run Code Online (Sandbox Code Playgroud)

我错过了什么?开始一个新项目不是一个选择......

非常感谢!

编辑 对不起,我确实有这些实现...但似乎缺少库...实现方法已满,编译错误如" managedObjectContext undeclared"," NSPersistentStoreCoordinator undeclared",但也有"预期")'之前NSManagedObjectContext"(虽然它似乎括号是正确的)...

#pragma mark -
#pragma mark Core Data stack

/**
 Returns the managed object context for the application.
 If the context doesn't already exist, it is created and …
Run Code Online (Sandbox Code Playgroud)

core-data ios

138
推荐指数
6
解决办法
8万
查看次数

Xcode 6 iPhone模拟器应用程序支持位置

在Xcode 6中,我有一个应用程序,我正在使用Core Data,但iOS 8 iPhone模拟器的应用程序支持中没有文件夹.我的文件和Core Data sqlite数据库存储在哪里?

xcode core-data ios xcode6 ios8

136
推荐指数
5
解决办法
12万
查看次数

无法找到NSManagedObject的特定子类

我正在开发一个使用Core Data的应用程序.当我使用以下方法创建实例时:

let entity = NSEntityDescription.entityForName("User", inManagedObjectContext: appDelegate.managedObjectContext)
let user = User(entity: entity, insertIntoManagedObjectContext: appDelegate.managedObjectContext)
Run Code Online (Sandbox Code Playgroud)

我在日志中收到警告:

CoreData: warning: Unable to load class named 'User' for entity 'User'.  Class not found, using default NSManagedObject instead.
Run Code Online (Sandbox Code Playgroud)

我该怎么办呢?

另一个问题是,如何在NSManagedObject子类中定义实例方法?

编辑:

我已经指定了实体的类,如下面的屏幕截图所示:

在此输入图像描述

core-data nsmanagedobject ios swift

131
推荐指数
7
解决办法
4万
查看次数

NSPredicate:按NSDate属性的日期过滤对象

我有一个带有NSDate属性的Core Data模型.我想白天过滤数据库.我认为解决方案将涉及一个NSPredicate,但我不知道如何将它们放在一起.

我知道如何比较NSDate使用NSDateComponents和的两天的日子NSCalendar,但是如何用一个NSPredicate

也许我需要在我的NSManagedObject子类上创建一个类别,它可以返回只有年,月和日的裸日期.然后我可以比较一下NSPredicate.这是你的推荐,还是有更简单的东西?

core-data objective-c nsdate nspredicate nsfetchedresultscontroller

122
推荐指数
6
解决办法
8万
查看次数

"在枚举时收集变异"在executeFetchRequest上

我已经坚持了几个小时的问题,并且已经在stackoverflow上阅读了所有相关信息(并应用了所有建议),我现在正式需要帮助.; O)

以下是上下文:

在我的iPhone项目中,我需要在后台导入数据并将其插入到托管对象上下文中.按照这里的建议,这是我正在做的事情:

  • 保存主要的moc
  • 使用主moc使用的持久性存储协调器实例化后台moc
  • 将我的控制器注册为后台moc的NSManagedObjectContextDidSaveNotification通知的观察者
  • 在后台线程上调用import方法
  • 每次收到数据时,将其插入后台moc
  • 导入所有数据后,保存背景moc
  • 将更改合并到主线程上的主moc中
  • 取消注册我的控制器作为通知的观察者
  • 重置并释放后台moc

有时(和随机),例外......

*** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSCFSet: 0x5e0b930> was mutated while being enumerated...
Run Code Online (Sandbox Code Playgroud)

当我在后台moc上调用executeFetchRequest时,抛出...以检查导入的数据是否已存在于数据库中.我想知道什么是变异集,因为没有任何东西在import方法之外运行.

我已经包含了我的控制器和我的测试实体的整个代码(我的项目由这两个类和app委托组成,未经修改):

//
//  RootViewController.h
//  FK1
//
//  Created by Eric on 09/08/10.
//  Copyright (c) 2010 __MyCompanyName__. All rights reserved.
//


#import <CoreData/CoreData.h>

@interface RootViewController : UITableViewController <NSFetchedResultsControllerDelegate> {
    NSManagedObjectContext *managedObjectContext;
    NSManagedObjectContext *backgroundMOC;
}


@property (nonatomic, retain) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, retain) NSManagedObjectContext *backgroundMOC;

@end


// …
Run Code Online (Sandbox Code Playgroud)

cocoa multithreading core-data

121
推荐指数
1
解决办法
5万
查看次数

如何从特定的对象ID获取Core Data对象?

我可以使用以下代码轻松地在Core Data中获取对象的ID:

NSManagedObjectID *moID = [managedObject objectID];
Run Code Online (Sandbox Code Playgroud)

但是,是否有办法通过为对象提供特定的对象ID来将对象从核心数据存储中取出?我知道我可以通过使用NSFetchRequest来实现这一点,如下所示:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Document" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(objectID = %@)", myObjectID];
[fetchRequest setPredicate:predicate];
Run Code Online (Sandbox Code Playgroud)

但是,我想以不启动自己的获取请求的方式执行此操作.有任何想法吗?

macos cocoa core-data nsfetchrequest ios

117
推荐指数
2
解决办法
7万
查看次数

最佳实践 - NSError域和您自己的项目/应用程序的代码

有一篇关于为您自己的框架设置错误域的SO帖子,但是关于为您自己的项目/应用程序设置错误域和自定义错误代码的最佳做法是什么?

例如,假设您正在使用具有大量验证的核心数据密集型应用程序,您是否应该坚持使用"现成的"核心数据错误代码(例如NSManagedObjectValidationError来自CoreDataErrors.h),或者您应该创建自己的错误代码MyAppErrors.h并定义错误更具特异性(即MyAppValidationErrorInvalidCombinationOfLimbs

创建自定义错误域和错误代码集可能会明显消除代码歧义,但维护过多是否需要担心错误代码编号冲突?或者还有其他问题吗?

cocoa core-data objective-c nserror

111
推荐指数
3
解决办法
3万
查看次数