Questions tagged «core-data»

Core Data是Apple的对象建模和持久性框架,适用于iOS,iPadOS,tvOS,watchOS和macOS。Xcode提供了一个对象模型编辑器,用于指定实体,属性和关系。

25
核心数据:删除实体所有实例的最快方法
我正在使用Core Data在本地保留Web服务调用的结果。Web服务为“汽车”返回完整的对象模型-大概有2000辆(而我不能让Web服务返回少于1辆或所有汽车。 下次打开我的应用程序时,我想通过再次调用所有汽车的Web服务来刷新Core Data持久副本,但是为了防止重复,我需要首先清除本地缓存中的所有数据。 有没有一种更快的方法来清除托管对象上下文中特定实体的所有实例(例如,所有类型为“ CAR”的实体),还是我需要查询它们的调用,然后遍历结果以删除每个实体,然后保存? 理想情况下,我只能说删除实体为Blah的所有内容。

25
在NSOrderedSet生成的访问器中引发异常
在我的Lion应用程序上,我具有以下数据模型: subitems内部的关系Item 是有序的。 Xcode的4.1(编译4B110)为我创建的文件Item.h,Item.m,SubItem.h和SubItem.h。 以下是内容(自动生成)Item.h: #import <Foundation/Foundation.h> #import <CoreData/CoreData.h> @class SubItem; @interface Item : NSManagedObject { @private } @property (nonatomic, retain) NSString * name; @property (nonatomic, retain) NSOrderedSet *subitems; @end @interface Item (CoreDataGeneratedAccessors) - (void)insertObject:(SubItem *)value inSubitemsAtIndex:(NSUInteger)idx; - (void)removeObjectFromSubitemsAtIndex:(NSUInteger)idx; - (void)insertSubitems:(NSArray *)value atIndexes:(NSIndexSet *)indexes; - (void)removeSubitemsAtIndexes:(NSIndexSet *)indexes; - (void)replaceObjectInSubitemsAtIndex:(NSUInteger)idx withObject:(SubItem …
364 cocoa  core-data  xcode4 

4
核心数据与SQLite 3的比较[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我已经非常熟悉关系数据库,并且过去使用过SQLite(和其他数据库)。但是,Core Data具有一定的吸引力,因此我正在考虑花一些时间来学习它,以便在我的下一个应用程序中使用。 通过SQLite使用Core Data有很多好处,反之亦然?每种优点/缺点是什么? 我发现当苹果不将其用于许多旗舰应用程序(如Mail.app或iPhoto.app)而不是选择SQLite数据库时,很难证明学习核心数据的成本。SQLite在iPhone上也被广泛使用。 熟悉这两种方法的人能否评论他们的经历?也许像大多数事情一样,这个问题比仅仅使用一个问题更深刻?
314 cocoa  macos  core-data  sqlite 

8
如何将iPhone Core Data与Web服务器同步,然后推送到其他设备?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 改善这个问题 我一直在研究一种在多个设备(例如iPad或Mac)之间同步iPhone应用程序中存储的核心数据的方法。没有太多(如果有的话)同步框架可用于iOS上的Core Data。但是,我一直在思考以下概念: 对本地核心数据存储进行更改,并保存更改。(a)如果设备在线,它将尝试将更改集发送到服务器,包括发送更改集的设备的设备ID。(b)如果变更集未到达服务器,或者设备不在线,则应用会将变更集添加到队列中,以便在其联机时发送。 位于云中的服务器将接收到的特定更改集与其主数据库合并。 在云服务器上合并变更集(或变更集队列)后,服务器会使用某种轮询系统将所有这些变更集推送到在服务器上注册的其他设备。(我曾考虑使用Apple的Push服务,但显然根据评论,这不是一个可行的系统。) 我有什么想想的吗?我研究了REST框架,例如ObjectiveResource,Core Resource和RestfulCoreData。当然,这些都可以与Ruby on Rails一起使用,尽管我并不依赖于Ruby on Rails,但这是一个起点。我对解决方案的主要要求是: 任何更改都应在不暂停主线程的情况下在后台发送。 它应该使用尽可能少的带宽。 我考虑了许多挑战: 确保在服务器上附加了不同设备上不同数据存储的对象ID。也就是说,我将有一个对象ID和设备ID的表,它们通过对存储在数据库中的对象的引用进行绑定。我将有一条记录(DatabaseId [此表唯一],ObjectId [该项目在整个数据库中唯一],Datafield1,Datafield2),ObjectId字段将引用另一个表AllObjects:(ObjectId,DeviceId,DeviceObjectId)。然后,当设备上载更改集时,它将沿着本地数据存储区中的核心数据对象传递设备ID和objectId。然后,我的云服务器将检查AllObjects表中的objectId和设备ID,并在初始表中找到要更改的记录。 所有更改都应加上时间戳,以便可以合并。 设备将必须轮询服务器,而又不会消耗过多的电池。 如果/从服务器收到更改,则本地设备还需要更新内存中保存的所有内容。 我还有其他想念的地方吗?我应该考虑采用哪种框架来实现这一目标?



25
用于开设商店的模型与用于创建商店的模型不兼容
我在xcode 3.2中创建了一个核心数据模型,并在Xcode 4.2中进行了升级,然后添加了NSManagedObject子类的新实体(请参阅新实体)。 首先,它看起来很奇怪,因为它与旧的不在同一个组中。这是我的xcode 4.2上的图片(AlkitabDB是我在xcode 3.2中创建的图片,EndeDB是当前xcode版本(4.2)中的新图片: 第二件事,让它保持原样,然后我以与第一个实体(旧的)相同的方式访问第二个实体(新的),并出现标题为错误的错误。 这是错误: 2012-01-16 21:13:38.496 iHuria[55953:207] Unresolved error Error Domain=NSCocoaErrorDomain Code=134100 "The operation couldn’t be completed. (Cocoa error 134100.)" UserInfo=0x8829cd0 {metadata=<CFBasicHash 0x882a370 [0x1839b38]>{type = immutable dict, count = 7, entries => 2 : <CFString 0x8829b90 [0x1839b38]>{contents = "NSStoreModelVersionIdentifiers"} = <CFArray 0x8829ff0 [0x1839b38]>{type = immutable, count …
181 ios  iphone  core-data 

2
最佳实践?-数组/字典作为核心数据实体属性
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 4年前关闭。 改善这个问题 我是Core Data的新手。我注意到集合类型不能用作属性类型,并且想知道最有效的方式是将数组/字典类型数据存储为属性(例如,组成街道,城市等地址的元素)不需要单独的实体,并且比单独的属性/字段更方便地存储为字典/数组。谢谢。

9
可可核心数据有效的实体计数方法
我读了很多有关Core Data的文章。但是什么是对Entity-Type进行计数的有效方法(例如SQL可以使用SELECT count(1)...)。现在,我只需选择全部NSFetchedResultsController并获得计数就可以解决此任务NSArray!我相信这不是最好的方法。

7
保存时iphone核心数据未解决错误
尝试保存时,我从核心数据中收到一条奇怪的错误消息,但是该错误不可重现(在执行不同任务时,它出现在不同时间) 错误消息: Unresolved error Domain=NSCocoaErrorDomain Code=1560 UserInfo=0x14f5480 "Operation could not be completed. (Cocoa error 1560.)", { NSDetailedErrors = ( Error Domain=NSCocoaErrorDomain Code=1570 UserInfo=0x5406d70 "Operation could not be completed. (Cocoa error 1570.)", Error Domain=NSCocoaErrorDomain Code=1570 UserInfo=0x14f9be0 "Operation could not be completed. (Cocoa error 1570.)" ); } 产生错误的方法是: - (IBAction)saveAction:(id)sender { NSError …


8
每个核心数据关系都必须具有逆关系吗?
假设我有两个Entity类:SocialApp和SocialAppType 在中,SocialApp我有一个属性:appURL和一个关系:type。 在SocialAppType我有三个属性:baseURL,name和favicon。 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 我需要逆吗,为什么?

11
如何使用UISearchDisplayController / UISearchBar过滤NSFetchedResultsController(CoreData)
我正在尝试在基于CoreData的iPhone应用程序中实现搜索代码。我不确定如何进行。该应用程序已经具有一个NSFetchedResultsController,该谓词可以检索主TableView的数据。我想确保在更改过多代码之前,我走在正确的道路上。我很困惑,因为这么多示例都是基于数组而不是CoreData的。 这里有一些问题: 我是否需要第二个NSFetchedResultsController仅检索匹配项,还是可以使用与主要TableView相同的项? 如果使用相同的方法,是否简单到清除FRC缓存,然后更改handleSearchForTerm:searchString方法中的谓词?谓词是否必须包含初始谓词以及搜索词,或者它还记得它最初使用谓词来检索数据吗? 我如何回到原始结果?我是否只是将搜索谓词设置为nil?这样一来就不会杀死用于检索FRC结果的原始谓词吗? 如果有人在使用FRC进行搜索时有任何代码示例,我将不胜感激!

13
将Core Data添加到现有iPhone项目
我想将核心数据添加到现有的iPhone项目中,但是仍然会遇到很多编译错误: - NSManagedObjectContext undeclared - Expected specifier-qualifier-list before 'NSManagedObjectModel' - ... 我已经将Core Data Framework添加到了目标(在“ 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; 我想念什么?无法启动新项目... 非常感谢! 编辑 抱歉,我确实有那些实现...但是似乎缺少库...实现方法充满了编译错误,例如“ managedObjectContext …
138 ios  core-data 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.