【发布时间】:2014-08-23 21:58:27
【问题描述】:
我有一个方法可以从我的 CoreData 数据库中返回一个 NSMutableArray 实体。实体看起来像这样
@property (nonatomic, retain) NSNumber * iD;
@property (nonatomic, retain) NSString * number;
@property (nonatomic, retain) ManufacturerNumber *manufacturerNumber;
我需要根据数字 NSString 创建一个唯一的manufacturerNumber 实体数组。
这就是我返回当前数组的方法的外观。
- (NSMutableArray *)readNumber
{
NSManagedObjectContext *context = [self managedObjectContext];
// Test listing all FailedBankInfos from the store
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"ManufacturerNumber" inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSError *error;
NSMutableArray *manufacturerNumbersDictionaryArray = [[NSMutableArray alloc] init];
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
for (ManufacturerNumber *manufacturerNumber in fetchedObjects) {
[manufacturerNumbersDictionaryArray addObject:manufacturerNumber];
}
return manufacturerNumbersDictionaryArray;
}
这会返回一个包含重复项的 NSMutableArray,我想删除重复项。
更新问题
我现在决定在我的 UITableview 中显示值时编辑数组,下面我将解释数组包含的内容等。
我有一个包含上述 coredata 实体的 NSMutableArray,我想知道如何根据entities cNumber 属性从 NSMutablerArray 创建一个唯一值的 NSSet。
这就是我创建 NSMutableArray 的方式
tableViewMArray = [NSMutableArray arrayWithArray:[cardManufacturerNumber.cNumbers allObjects]];
如您所见,cardManufacturerNumber 是一个与 cNumbers 具有一对多关系的 coredata 对象。
cNumbers 有 3 个属性
- numString
- numID
- 父对象
我想知道如何根据 cNumbers numString 属性创建一个唯一的 NSMutableArray。
NSMutableArray 应该由唯一的 cNumbers coredata 对象组成。不仅仅是 numString 字符串,因为我需要知道其他值。
【问题讨论】:
-
您是否尝试过从该可变数组创建
NSSet? -
不,我现在正试图弄清楚如何做到这一点:) 只是阅读 NSSets 由于 coredata 对象,我遇到了问题
-
我目前收到警告 Incompatible pointer types initializing 'NSSet *' with an expression of type 'NSString *'
-
如果你想从你的数据模型中消除重复,为什么你的数据模型允许重复?我认为您在创建新对象时只需使用 numString 检查商店中的现有对象。将一个没有重复的数组混合在一起,只需在 for 循环中使用 NSDictionary 的 setValue:CNumber forKey:numString 直到 tableViewMArray.count,然后调用 NSDictionary 的 allValues。但这忽略了具有相同 numString 的对象可能对其他属性具有不同值的问题......所以你的模型不应该允许它。
-
这正是其他属性确实具有不同值的问题.. 这是我试图克服 atm 的数据中的错误......真是让人头疼
标签: ios objective-c entity-framework core-data