Lui*_*cio 0 objective-c nsarray ios
我是开发应用程序的新手.我有一张NSArray,里面有2张图片.
imageOneArray = [NSArray arrayWithObjects:[UIImage imageNamed:@"White.png"], [UIImage imageNamed:@"Black.png"], nil];
Run Code Online (Sandbox Code Playgroud)
我的问题是,有没有办法制作一个看起来像这样的"if语句":
if ([imageOneArray = [UIImage imageNamed:@"White.png"]) {
//DO SOMETHING
};
Run Code Online (Sandbox Code Playgroud)
上面的代码给了我错误,我该如何解决?我究竟做错了什么?我的作品是什么?
任何帮助将不胜感激.
如果你需要检查数组是否包含一个你应该使用的对象
if ([imageOneArray containsObject:[UIImage imageNamed:@"White.png"]]) {
//DO SOMETHING
};
Run Code Online (Sandbox Code Playgroud)
在这里你应该注意,该数组检查发送-isEqual:到其对象的包含.所以,UIImage -isEqual:就会做指针比较.上面的代码将YES由于提供的图像缓存机制而返回+imageNamed:,但是,一般来说,它应该返回NO.考虑以下示例:
NSString *path = [[NSBundle mainBundle] pathForResource:@"White" ofType:@"png"];
UIImage *image1 = [UIImage imageWithContentsOfFile:path];
UIImage *image2 = [UIImage imageWithContentsOfFile:path];
NSArray *arr = @[image1];
BOOL contains1 = [arr containsObject:image1]; // YES
BOOL contains2 = [arr containsObject:image2]; // NO
Run Code Online (Sandbox Code Playgroud)
并考虑以下带字符串的示例:
NSString *string1 = [NSString stringWithString:@"abc"];
NSString *string2 = [NSString stringWithString:@"abc"];
NSArray *arr = @[string1];
BOOL contains1 = [arr containsObject:string1]; // YES
BOOL contains2 = [arr containsObject:string2]; // YES
Run Code Online (Sandbox Code Playgroud)
因此,您应该记住数组中对象的相等规则.关于NSHipster 平等主题的文章很精彩.
如果你需要检查数组是否等于另一个数组
if ([imageOneArray isEqualToArray:@[[UIImage imageNamed:@"White.png"]]]) {
//DO SOMETHING
};
Run Code Online (Sandbox Code Playgroud)
查看NSArray类引用,了解何时可以使用数组
| 归档时间: |
|
| 查看次数: |
235 次 |
| 最近记录: |