博客事由:在开发静态库时,希望能够让自己的接口更加人性化以及实用价值更高,我需要用到一个数组,以及对数组元素是否存在的判断。
以往总是遍历所有元素,于是就想有没有一个方法能够直接判断某个元素是否存在于数组中,于是尝试之下果然发现还是有的。进而想更深层次的挖掘一下数组的一些实用的方法。
(1)这个方法能够直接判断数组是否包含该元素
NSArray *arr =@[@3,@4,@5,@8,@9,@10];
if ([arrcontainsObject:@3])
{
NSLog(@"包含3");
}else
{
NSLog(@"不包含3");
}
(2)这个是利用枚举正遍历而且能够随时停止遍历
[arr enumerateObjectsUsingBlock:^(id obj,NSUInteger idx, BOOL *stop){
NSLog(@"array is %d is %@", idx, obj);
if (idx==3) {
*stop = YES;
}
}];
(3)利用枚举的反遍历而且能够随时停止遍历
[arr enumerateObjectsWithOptions:NSEnumerationReverseusingBlock:^(id obj,NSUInteger idx, BOOL *stop){
NSLog(@"array is %d is %@",idx, obj);
if (idx==3) {
*stop = YES;
}
}];
(4)利用枚举的正遍历(非Block)
NSArray *array = [[NSArray alloc] init];
NSEnumerator *enume = [array objectEnumerator];
id object;
while ((object = [enume nextObject]) != nil) {
NSLog(@"array is %@", object);
}
NSArray *array = [[NSArray alloc] init];
NSEnumerator *enume =[array reverseObjectEnumerator];
id object;
while ((object = [enume nextObject]) != nil) {
NSLog(@"array is %@", object);
}
至于在字典中以及字符串中是否有这些实用的方法有待继续探索
好吧,需要补充一下,上面有的方法是在IOS8以后才能用的,自己没注意,已经被坑了