正在关注thisexcellentpost通过OlivierDrobnik,我实现了CoreData专家MarcusS.Zarra提出的三层CoreData堆栈:与此图和我的代码的唯一区别是我只使用一个临时背景MOC,以避免在多个临时MOC中插入对象时出现重复。这是我的上下文初始化代码:#pragmamark-NSManagedObjectContexts+(NSManagedObjectContext*)privateManagedObjectContext{if(!_privateManagedObjectContext){//SetupMOCattachedtoPSC_priva
问题我试图简单地保存一条记录然后获取它,但我认为我在这里做错了,因为我的记录没有保存。输出窗口只显示一个空数组。我在Xcode7beta5中使用boiler-plateAppDelegateCoreData堆栈。[SeeGistHere]尝试实体型号importFoundationimportCoreData//@func(Person)edit:removedclassPerson:NSManagedObject{@NSManagedvarfirstName:String?@NSManagedvarlastName:String?}ViewControllerimportUIKiti
所以我正在尝试搜索核心数据。假设我的CoreData有两个字段,它们是NSString(我们称它们为foo和bar)。用户指示要搜索的字段和搜索字符串。现在我正在使用这段代码:NSString*format=[NSStringstringWithFormat:@"(%@matches[c]%@)",field,@"%@"];//Double-escapethatslashNSString*pattern=[NSStringstringWithFormat:@".*\\b%@.*",partialString];NSPredicate*predicate=[NSPredicatepred
我只是想创建实体但不保存,只检查它们。我可以为它们创建一个临时上下文吗?一旦我决定存储它们,是否有办法将它们移动到持久上下文中?重点:这些功能是否可以通过MagicalRecord获得API? 最佳答案 创建一个新的NSManagedContext,将parentContext属性设置为您的主上下文,并在新上下文中创建新对象-您可以对这些对象做任何您想做的事情,然后稍后保存新的上下文(这会将对象移动到主上下文)或者只是丢弃它-对象将会消失。似乎有一个+(NSManagedObjectContext*)MR_contextWithPa
我在使用CoreData和iCloud的过程中遇到了一些问题。我使用了来自苹果开发者论坛(iCloud)的示例-IPhoneCoreDataRecipes项目代表通过iCloud使用CoreData的工作。它工作正常,但出现了一些冲突,并且并非所有实体都在同步。我可以在日志中看到以下警告:Warning>:+[PFUbiquityRecordImportConflictcreateTransactionLogForTransactionEntry:withError:](607):CoreData:Ubiquity:Unabletofindtransactionlogforentry:
我正在使用Xcode4.6处理一个使用CoreData的项目。数据模型现在是版本13并使用轻量级迁移。我的问题:在每次启动时,Xcode似乎都会修改PROJECT.xcdatamodeld/.xccurrentversion文件以设置为版本1。我注意到修改后的文件会自动添加到GIT索引中。Xcode的GUI没有反射(reflect)对此文件所做的更改,它告诉我我的模型的当前版本是13。这个问题在开发过程中的某个时刻开始(可能在模型版本7)并且甚至对于新模型版本仍然存在。奇怪的是,即使在不同计算机上安装不同的Xcode,也会对该项目显示这种行为。我附上了对文件所做更改的屏幕截图。我的解决
我对NSManagedObjectContext的类型有些疑惑,我们看看apple关于NSConfinementConcurrencyType的文档:Confinement(NSConfinementConcurrencyType)Forbackwardscompatibility,thisisthedefault.Youpromisethatcontextwillnotbeusedbyanythreadotherthantheoneonwhichyoucreatedit.Ingeneral,tomakethebehaviorexplicityou’reencouragedtouseo
如果您使用Xcode创建一个新项目并告诉它在您创建项目时创建一个CoreData模板,则您不需要#import在使用ManagedObjects的类中。我已经将CoreData存储添加到一个预先存在的项目中,该项目不是以CoreData模板开始的,并且发现我必须在我的所有类中#import。无论如何要解决这个问题? 最佳答案 您可以添加#import到prefixheader在您的项目中使用(例如,在#import之后)。您可以在OtherSources下的Xcode项目树中找到前缀header,它应该被命名为yourProject
我将日期和时间保存在我的CoreData存储中,并且需要向用户准确呈现最初输入的时间。问题是,如果他们在东海岸输入4:00,然后查看西海岸记录的时间,显示为1:00,因为iPhone将世界时间转换为本地时间。我需要它显示4:00——可能是4:00(+3h00)。在我去重构我的CoreData模型之前,我想确定没有办法从存储的NSDate对象派生出在创建时处于事件状态的NSTimeZone。在那儿?如果没有,有什么建议如何最好地自己在创建时捕获NSTimeZone?表示创建时间NSTimeZone与GMT时差的NSNumber?谢谢。 最佳答案
我们遇到了这个问题,不同的线程在相同的记录上看到不同的数据,但具有不同的托管对象上下文(moc)。我们的应用程序在后台同步到服务器API。所有的同步都是在它自己的线程上完成的,并使用它自己的moc。然而,我们发现当数据在主moc上更新时,数据的变化不会显示在后台moc中。任何想法可能会发生什么?这里有一些更多的细节:我们正在使用像这样的大中央调度来将同步操作放在它自己的线程上:我们已经检查了哪些队列正在运行,并且这一切都发生在预期的队列上。-(void)executeSync;{dispatch_async(backgroundQueue,^(void){if([selfisDebug