博客事由:在開發靜態庫時,希望能夠讓自己的接口更加人性化以及實用價值更高,我需要用到一個數組,以及對數組元素是否存在的判斷。
以往總是遍歷所有元素,於是就想有沒有一個方法能夠直接判斷某個元素是否存在於數組中,於是嘗試之下果然發現還是有的。進而想更深層次的挖掘一下數組的一些實用的方法。
(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以後才能用的,自己沒注意,已經被坑了