如何将唯一对象添加到 nmutablearray?

Son*_*y G 3 unique filter nsmutablearray ios nsorderedset

我有一个带有 NSStrings 的 NSObject。如何仅将具有唯一 obj.name 的对象添加到 NSMutableArray?我试过 NSOrderedSet 但它只有在你将 NSString 添加到数组而不是包含 NSString 的对象时才有效。

例子。

@@interface MyObject : NSObject
@property (strong, nonatomic) NSString *name;
@end


NSMutableArray *array = {MyObject.name,MyObject.name,MyObject.name};
Run Code Online (Sandbox Code Playgroud)

如何确保没有两个 MyObject 具有相同的名称?

Roc*_*ker 5

使用 NSPredicate 在 NSMutableArray 中搜索对象,如果不存在,则将其添加到 NSMutableArray。尝试这个。

  NSArray * filtered = [array filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"name = %@", @"MyObject.name"]];
  if(![array count])
        [array addObject:MyObject ]; 
Run Code Online (Sandbox Code Playgroud)