Ios 创建核心数据实体期间的精神错乱
我以编程方式填充核心数据实体 我有这样一个数组:Ios 创建核心数据实体期间的精神错乱,ios,macos,cocoa,core-data,Ios,Macos,Cocoa,Core Data,我以编程方式填充核心数据实体 我有这样一个数组: NSArray *formats = @[ @"6 x 5", @"5.3 x 4.3", @"4 x 3", @"5 x 3.5", ... 现在,我枚举它并填充实体 for (int i=0; i<[formats count]; i++)
NSArray *formats = @[
@"6 x 5",
@"5.3 x 4.3",
@"4 x 3",
@"5 x 3.5",
...
现在,我枚举它并填充实体
for (int i=0; i<[formats count]; i++) {
NSString *format = formats[i];
Format *oneFormat = [Format formatWithString:format inManagedObjectContext:managedObjectContext];
// ... bla bla
}
这就是问题所在。在for
循环中的某个点上
format = @"5.3 x 4.3"
然后,执行这一行
Format *oneFormat = [Format formatWithString:format inManagedObjectContext:managedObjectContext];
理论上,format=@“5.3 x 4.3”
被传递到format formatWithString
问题是Format formatWithString
接收以下字符串:@“4 x 3.5”
什么???方法称为@“5.3 x 4.3”
,并接收@“4 x 3.5”
这是令人惊奇的部分。如果我po谓词
我看到
name == "5.3 x 4.3 cm"
这是正确的值。但保存记录时,保存的值是错误的
这个@“4 x 3.5”
是很久以前我在代码中使用的旧格式。那是个打字错误。我从代码中删除了所有提及此格式的内容。我已经检查了10次了。不再有@“4 x 3.5”
我已删除所有派生数据。每次我生成数据库时,它都包含不应该存在的@“4 x 3.5”
条目
是否有任何隐藏的核心数据缓存或我可以清理的地方来正确生成这些缓存?如何使用一个值调用一个方法并接收另一个值
#2给我一个想法,在Format类中更改变量名,这就解决了问题。谢谢
name == "5.3 x 4.3 cm"