繁体   English   中英

如何在NSMutableArray中过滤UIColor对象

[英]How to filter UIColor object in NSMutableArray

我正在生成随机颜色并像这样存储在NSmutableArray

for(int i=0; i<1000; i++) {
    UIColor *c = [self colorGen];
    [_cArray addObject:c];
}

我要检查每一个我增添色彩阵列时间它不是重复,我如何应用谓词_cArray通过检查色彩还原[self colorGen]方法是不是已经存在_cArray ,例如_cArray已经包含后红色10迭代[self colorGen]再次返回红色,因此如何避免再次将其添加到数组中。

    for(int i=0; i<1000; i++) {
        UIColor *c = [self colorGen];

      if (![_cArray containsObject:c]) {

           [_cArray addObject:c];

        }  
}

请使用此代码

NSMutableSet *colors = [NSMutableSet set];
while (colors.count < 1000) {
    [colors addObject:[self colorGen]];
}

比较UIColor对象的方式的示例代码:

NSMutableSet *colors = [NSMutableSet set];

UIColor *color1 = [UIColor colorWithRed:0.1 green:0.2 blue:0.3 alpha:1];
UIColor *color2 = [UIColor colorWithRed:0.1 green:0.2 blue:0.3 alpha:1];

[colors addObjectsFromArray:@[color1, color2]];

NSLog(@"%lu", (unsigned long)colors.count);

此代码打印1,指示两种颜色均被视为相等!

你可以做,

 for(int i=0; i<1000; i++) {
    UIColor *c = [self colorGen];

    if (![_cArray containsObject:c] ) {

         [_cArray addObject:c];

    }
    else{

        NSLog(@"already there");
    }


}

方法colorGen的更改应返回UIColor的十六进制值

for(int i=0; i<1000; ) {
    NSString *strCode = [self colorGen];

    if (![_cArray containsObject:strCode] ) {

         [_cArray addObject:strCode];
        i++;

    }
    else{

        NSLog(@"already there");
    }


}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM