數組中不常用卻又好用的方法探索

博客事由:在開發靜態庫時,希望能夠讓自己的接口更加人性化以及實用價值更高,我需要用到一個數組,以及對數組元素是否存在的判斷。

以往總是遍歷所有元素,於是就想有沒有一個方法能夠直接判斷某個元素是否存在於數組中,於是嘗試之下果然發現還是有的。進而想更深層次的挖掘一下數組的一些實用的方法。

  (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 allocinit];

    NSEnumerator *enume = [array objectEnumerator];

    id object;

    while ((object = [enume nextObject]) != nil) {

        NSLog(@"array is %@", object);

    }


(5) 利用枚舉的反遍歷(非Block)

NSArray *array = [[NSArray allocinit];

    NSEnumerator *enume =[array reverseObjectEnumerator];

    id object;

    while ((object = [enume nextObject]) != nil) {

        NSLog(@"array is %@", object);

    }



至於在字典中以及字符串中是否有這些實用的方法有待繼續探索

好吧,需要補充一下,上面有的方法是在IOS8以後才能用的,自己沒注意,已經被坑了


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章