multi-context-coredata
全部标签 我正在使用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
我正在DockerGitlab执行人的Docker映像中运行测试。日志看起来像这样:Runningwithgitlab-ci-multi-runner9.2.0..ERROR:Jobfailed:exitcode252我在工作脚本(shell)中要做的最后一件事是呼吁mongo评估我的after_script此作业的dockerrm-fimageName,例如:after_script:-dockerrm-fimagename首先,我找不到对此错误代码#的任何具体引用。我不知道这是Mongo评估错误代码还是GitLabCI。我最好的猜测是GitlabCI,因为如果直接在构建机器上运行,该脚本正
如果您使用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
如何引用我在静态库项目中创建的模型?这会返回null并抛出错误,因为资源位于这个静态库中://thiscodeisinthestaticlibrary-(NSManagedObjectModel*)managedObjectModel{if(__managedObjectModel!=nil){return__managedObjectModel;}NSURL*modelURL=[[NSBundlemainBundle]URLForResource:@"eCommerceEngine"withExtension:@"mom"];__managedObjectModel=[[NSMana
我已经开始使用CoreData编写iPhone应用程序,并尝试使我的代码库尽可能易于维护。因此,我想避免硬编码字符串,例如:NSPredicate*predicate=[NSPredicatepredicateWithFormat:@"name==%@",aName];相反,我希望能够编写如下内容:NSPredicate*predicate=[NSPredicatepredicateWithFormat:@"%K==%@",Person.name,aName];这样我就可以让编译器检查name是否是实体Person的属性并避免拼写错误。尽管使用这段代码,我在编译时遇到了以下错误:在Pe
我已经实现了一个自定义计算器,我在其中使用以下代码来计算类似5+3*5-3的算术表达式。-(NSNumber*)evaluateArithmeticStringExpression:(NSString*)expression{NSNumber*calculatedResult=nil;@try{NSPredicate*parsed=[NSPredicatepredicateWithFormat:[expressionstringByAppendingString:@"=0"]];NSExpression*left=[(NSComparisonPredicate*)parsedleftE
我在UITableView中有一个对象列表,由NSFetchedResultsController管理。当用户选择一个对象时,会显示一个编辑View,允许用户编辑所选的NSManagedObject实例。当用户进行更改时,对象的属性会在对象中更新。问题是,和往常一样,有一个保存按钮和一个取消按钮。如果用户点击保存,NSManagedObjectContext将被保存,并反射(reflect)更改。但是,如果用户点击取消,我需要将对象恢复到之前的状态。调用[managedObjectContextrollback]不适用于此目的。有人知道如何正确实现吗?我无法在编辑期间将对象的属性存储为