Iphone 如何防止从CoreData获取时出现重复结果?
我正在运行一个非常简单的fetchIphone 如何防止从CoreData获取时出现重复结果?,iphone,objective-c,core-data,Iphone,Objective C,Core Data,我正在运行一个非常简单的fetchunitType,比如$gived\u TYPE,它使用一个替换字典,在应该有大约5个对象的情况下,始终返回40个对象。它似乎在以不同的顺序重复相同的结果,比如它们的排列或其他什么,除了120个5而不是40的排列 它返回: A B C D E A E D C B B A C D E E D B C A C E B D A A D E C B C D B E A B E A C D 每次都坚持 我99%确定没有相同实例的所有这些重复,我会检查以确保,但我不确定如
unitType,比如$gived\u TYPE
,它使用一个替换字典,在应该有大约5个对象的情况下,始终返回40个对象。它似乎在以不同的顺序重复相同的结果,比如它们的排列或其他什么,除了120个5而不是40的排列
它返回:
A B C D E
A E D C B
B A C D E
E D B C A
C E B D A
A D E C B
C D B E A
B E A C D
每次都坚持
我99%确定没有相同实例的所有这些重复,我会检查以确保,但我不确定如何检查,我希望此查询每个都返回一个
在缩小范围方面,任何帮助都将不胜感激
更新
这是我用于查找的基本代码,fetch请求是在xcode中,但它是一个单行程序,它只是说unitType,比如$GIVEN\u TYPE
NSArray * results = nil;
NSManagedObjectModel * model = [[cont persistentStoreCoordinator] managedObjectModel];
NSDictionary * substDict = [NSDictionary dictionaryWithObject:name forKey:@"GIVEN_NAME"];
NSFetchRequest * fetReq = [model fetchRequestFromTemplateWithName:@"UnitLookup" substitutionVariables:substDict];
results = [cont executeFetchRequest:fetReq error:&e];
@macworth-我现在确实检查了Base,我是对的,只有5个对象的unitType等于我输入的值(尝试更改为==),我非常确定,因为我在测试开始时自己填充数据库,在从模拟器中删除应用程序后,我反复尝试,然后重新运行。您可以在任何SQLLight浏览器中打开CoreData数据库-Base是一款不错的浏览器
找到iphonesimulator目录,转到其中的应用程序目录,并在其中查找SQLite数据库。在SQLlite浏览器中打开它,并查看表格,直到找到表示所讨论实体的表格,然后查看您有多少对象。您可以在任何SQLLight浏览器中打开CoreData数据库-Base是一个不错的浏览器
找到iphonesimulator目录,转到其中的应用程序目录,并在其中查找SQLite数据库。在SQLlite浏览器中打开它并查看表,直到找到表示所讨论实体的一个,然后查看您有多少个对象。您能否提供更多的代码,说明如何逐步构建获取?Re:“我99%确定没有相同实例的所有这些重复”CoreData不会为您提供在一次获取中复制的相同对象。因此,看起来有40个这样的对象与您的查询相匹配。为什么你认为应该有5个呢?所以我做了更多的调查,发现还有1%的不确定性,解决了这个问题。我应该删除我的问题还是什么?你能提供更多的代码来说明你是如何一步一步地构建你的获取的吗?Re:“我99%确定不会有相同实例的所有这些重复”CoreData不会为你提供在一次获取中复制的相同对象。因此,看起来有40个这样的对象与您的查询相匹配。为什么你认为应该有5个呢?所以我做了更多的调查,发现还有1%的不确定性,解决了这个问题。我应该删除我的问题还是什么?