亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

IOS數組NSArray與NSMutableArray知識點

2019-11-14 18:41:05
字體:
來源:轉載
供稿:網友

此文是對數組NSArray與NSMutableArray知識點的總結,主要是一些常見的操作,別外一些操作見其相應的文檔,下面的代碼部分還運用的第三方插件BlocksKit相結合;

a:Foundation中數組(NSArray)是有序的對象集合
b:NSArray只能存儲Objective-C的對象,而不能存儲像int、float這些基本數據類型,但是Objective-C對C兼容,所以在Objective-C程序中,仍然可以使用C的數組來存儲基本數據類型
c:NSArray一旦創建便不可以再對它就進行更改,如果要進行對數組的增、刪、改等操作的話,需要使用NSArray的子類NSMutableArray來創建對象

1:NSArray一些常見操作

NSArray *array=[NSArray array];    //增加單個    //array=[NSArray arrayWithObject:@"wujy"];    //增加多個    array=[NSArray arrayWithObjects:@"VEVb",@".com",nil];    NSInteger arrayCount=array.count;    NSLog(@"當前array數組個數為:%ld",arrayCount);        int i=0;    for (id obj in array) {        NSLog(@"當前第%d個為%@",i,obj);        i++;    }        //常用的數組操作    NSString *lastString=[array lastObject];    NSLog(@"最后一個對象的值為:%@",lastString);        NSString *firstString=[array firstObject];    NSLog(@"第一個對象的值為:%@",firstString);        NSString *indexString=[array objectAtIndex:1];    NSLog(@"第二個對象的值為:%@",indexString);        NSInteger indexInt=[array indexOfObject:@"VEVb"];    NSLog(@"返回索引的位置:%ld",indexInt);        //將字符串轉化成數組    NSString *arrayString=@"a,b,c,d";    NSArray *newArray=[arrayString componentsSeparatedByString:@","];    for (id obj in newArray) {        NSLog(@"當前字符串轉化為%@",obj);    }        //判斷數組是否存在元素    if ([newArray containsObject:@"c"]) {        NSLog(@"存在字母c的元素");    }    else    {        NSLog(@"不存在字母c的元素");    }        //簡便創建    NSArray *twoArray=[NSArray arrayWithObjects:@1,@2,@3,@4,@5,nil];    //迭代器遍歷  reverSEObjectEnumerator數組元素從后向前訪問    NSEnumerator *arrayenumerator=[twoArray reverseObjectEnumerator];    id obj=nil;    while (obj=[arrayenumerator nextObject]) {        NSLog(@"當前值為:%d",[obj intValue]);    }                    //利用BlocksKit插件進行遍歷    NSArray *frArray=[NSArray arrayWithObjects:@(0.2),@(0.5),@(0.9),nil];    [frArray bk_each:^(id obj) {        NSLog(@"%@",obj);    }];        //跟數組項進行對比,若不存在則為空 存在則為符合的值    id found=[frArray bk_match:^BOOL(id obj) {        BOOL match=([obj floatValue]==0.5)?YES:NO;        return match;    }];    NSLog(@"有符合的值:%@",found);        id notFound=[frArray bk_match:^BOOL(id obj) {        BOOL match=([obj floatValue]==0.7)?YES:NO;        return match;    }];    NSLog(@"沒有符合的值(nil):%@",notFound);    //過濾數組    NSArray *selectFound=[frArray bk_select:^BOOL(id obj) {        BOOL match=([obj floatValue]>0.3)?YES:NO;        return match;    }];    NSLog(@"當前過濾array數組個數為:%ld",selectFound.count);    for (id obj in selectFound) {        NSLog(@"當前符合為%@",obj);    }        //過濾數組 取相反    NSArray *rejectFound=[frArray bk_reject:^BOOL(id obj) {        BOOL match=([obj floatValue]>0.3)?YES:NO;        return match;    }];    NSLog(@"當前取反array數組個數為:%ld",rejectFound.count);    for (id obj in rejectFound) {        NSLog(@"當前符合為(0.2符合)%@",obj);    }        //遍歷數組 對每個值都進行修改 組成新的數組    NSArray *mapFound = [array bk_map:^id(id obj) {        return [obj stringByAppendingString:@".png"];    }];    for (id obj in mapFound) {        NSLog(@"當前map %@",obj);    }        //合并數組的各項值    //進行數組的合并 中間可以加分格符之類 (這邊是前面加的一個|;合并后的字符串為:|VEVb.com)    NSString *concentrated = [array bk_reduce:@"|" withBlock:^id(id sum, id obj) {        return [sum stringByAppendingString:obj];    }];    NSLog(@"合并后的字符串為:%@",concentrated);        //相加  還有一個為整數型 bk_reduceInteger    float value = [frArray bk_reduceFloat:0 withBlock:^CGFloat(CGFloat result, id obj) {        return result + [obj floatValue];    }];    NSLog(@“合并后的frArray值為:%f",value);

 

2:NSMutableArray一些常見的操作

//從array轉nsmutablearray    NSArray *array=[[NSArray alloc] initWithObjects:@"wujy",@"VEVb",nil];    NSMutableArray *mutableArray=[NSMutableArray arrayWithArray:array];        //創建NSMutableArray    NSMutableArray *newMutableArray=[NSMutableArray array];    [newMutableArray addObject:@"a"];    [newMutableArray addObjectsFromArray:[[NSArray alloc] initWithObjects:@"b",@"c",@"d",@"e",nil]];    //迭代器遍歷  reverseObjectEnumerator數組元素從后向前訪問    NSEnumerator *arrayenumerator=[newMutableArray reverseObjectEnumerator];    id obj=nil;    while (obj=[arrayenumerator nextObject]) {        NSLog(@"當前值為:%@",obj);    }        //創建NSMutableArray    NSMutableArray *capacityArray=[[NSMutableArray alloc] initWithCapacity:5];    [capacityArray addObjectsFromArray:[[NSArray alloc] initWithObjects:@1,@2,@3,nil]];    NSLog(@"刪除前(1,2,3):%@",capacityArray);    //刪除指定的元素    [capacityArray removeObject:@3];    NSLog(@"刪除后(1,2):%@",capacityArray);    //插入    [capacityArray insertObject:@4 atIndex:2];    NSLog(@"插入后的(1,2,4)%@",capacityArray);    //插入多個    NSIndexSet *set=[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 2)];    [capacityArray insertObjects:[[NSArray alloc] initWithObjects:@5,@6,nil] atIndexes:set];    NSLog(@"插入多個以后的(5,6,1,2,4):%@",capacityArray);        //Blocks操作    //過濾    [capacityArray bk_performSelect:^BOOL(id obj) {        BOOL match=([obj intValue]>2)?YES:NO;        return match;    }];    NSLog(@"過濾后的數組值為(5,6,4):%@",capacityArray);        //取反過濾    [capacityArray bk_performReject:^BOOL(id obj) {        BOOL match=([obj intValue]>5)?YES:NO;        return match;    }];    NSLog(@"過濾取反后的數組值為(5,4):%@",capacityArray);        //對數組的值進行操作    [capacityArray bk_performMap:^id(id obj) {        return [NSNumber numberWithInt:[obj intValue]+1];    }];    NSLog(@"map后的數組值為(6,5):%@",capacityArray);

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品va在线播放| 国产91热爆ts人妖在线| 亚洲国产精品久久久久久| 国产一区二区三区直播精品电影| 九九热精品视频| 亚洲欧美国产日韩天堂区| 亚洲欧美一区二区三区情侣bbw| 91精品久久久久久久久久另类| 亚洲第一区在线观看| 日韩电影中文 亚洲精品乱码| 91精品国产91久久久久久久久| 色777狠狠综合秋免鲁丝| 久久九九全国免费精品观看| 国产成+人+综合+亚洲欧洲| 国产午夜精品全部视频在线播放| 欧美电影在线观看网站| 日韩高清a**址| 国产高清视频一区三区| 欧美激情一级二级| www.色综合| 萌白酱国产一区二区| 超薄丝袜一区二区| 日韩精品一区二区三区第95| 狠狠综合久久av一区二区小说| 亚洲欧美日韩视频一区| 日韩精品高清在线观看| 日韩中文字幕欧美| 亚洲精品乱码久久久久久按摩观| 久久99精品久久久久久噜噜| 久久久免费精品视频| 美日韩丰满少妇在线观看| 国产欧美一区二区白浆黑人| 欧美精品激情在线| 中文日韩在线视频| 亚洲精品久久久久| 91中文字幕一区| 亚洲人av在线影院| 全球成人中文在线| 欧美综合在线观看| 亚洲剧情一区二区| 日韩视频亚洲视频| 久久99精品国产99久久6尤物| 国产精品免费看久久久香蕉| 最近2019免费中文字幕视频三| 国产一区二区香蕉| 日韩久久精品成人| 欧美多人爱爱视频网站| 隔壁老王国产在线精品| 国产日韩中文字幕在线| 日韩久久精品电影| 国产成人91久久精品| 国产精品678| www国产精品com| 亚洲欧美另类人妖| 亚洲色图校园春色| 午夜精品久久久久久99热软件| 在线成人中文字幕| 亚洲一区第一页| 亚洲美女中文字幕| 热久久免费视频精品| 亚洲精选中文字幕| 国产精品旅馆在线| 久久理论片午夜琪琪电影网| 欧美精品videosex性欧美| 日韩精品免费综合视频在线播放| 在线看日韩欧美| 色偷偷av亚洲男人的天堂| 精品二区三区线观看| 国产精品久久久久久网站| 欧美电影免费观看高清完整| 国内精品久久久久影院优| 97婷婷大伊香蕉精品视频| 日本视频久久久| 亚洲欧美资源在线| 欧美巨大黑人极品精男| 欧美自拍大量在线观看| 国产精品青青在线观看爽香蕉| 红桃av永久久久| 亚洲免费av网址| 日韩精品高清在线观看| 亚洲高清不卡av| 欧美精品videosex牲欧美| 亚洲综合在线播放| 秋霞av国产精品一区| 中文字幕视频在线免费欧美日韩综合在线看| 福利微拍一区二区| 国产啪精品视频| 欧美综合在线第二页| 久久6免费高清热精品| 欧美日本在线视频中文字字幕| 国产精品久久婷婷六月丁香| 97国产精品人人爽人人做| 国产日韩欧美另类| 国自在线精品视频| 欧美亚洲另类在线| 色综合久久精品亚洲国产| 久久综合色88| 久久免费福利视频| 国产美女高潮久久白浆| 精品免费在线观看| www.欧美精品| 欧美尺度大的性做爰视频| 在线视频精品一| 久久国产精品视频| 午夜精品久久久久久久白皮肤| 久久人人爽国产| 国产精品h片在线播放| 日韩av第一页| 91亚洲精品一区二区| 欧美日韩激情小视频| 国产午夜精品一区理论片飘花| 亚洲一区二区三区sesese| 色老头一区二区三区| 日本精品免费观看| 91探花福利精品国产自产在线| 亚洲人成在线观| 欧美日韩国产色视频| 91精品视频免费观看| 国产精品久久久久久av福利软件| 日韩va亚洲va欧洲va国产| 中文字幕精品—区二区| 一区二区三区国产视频| 日韩av综合网| 欧美成人午夜激情| 91av在线播放视频| 亚洲人成电影网站色| 亚洲福利精品在线| 日韩精品视频三区| 91久久精品国产91久久| 超碰日本道色综合久久综合| 国产精品夜色7777狼人| 中文字幕日韩在线播放| 亚洲国产又黄又爽女人高潮的| 亚洲va欧美va国产综合剧情| 日本精品久久久久久久| 中文字幕日韩免费视频| 精品电影在线观看| 欧美在线视频a| 日韩欧美成人网| 亚洲一区二区三区777| 国产女同一区二区| 欧美激情视频一区二区三区不卡| 欧美激情videoshd| 亚洲综合精品一区二区| 日韩精品在线私人| 午夜精品久久17c| 日韩在线精品一区| 国产精品av免费在线观看| 久久久免费高清电视剧观看| 日韩精品www| 欧美性xxxx极品hd满灌| 亚洲一区二区国产| 中文字幕日韩在线播放| 欧美日韩亚洲网| 日韩精品一区二区三区第95| 亚洲国产高清高潮精品美女| 久久夜色精品国产亚洲aⅴ| 国产一区二区三区精品久久久| 在线观看日韩www视频免费| 26uuu亚洲国产精品| 中文字幕精品在线视频| 欧美日韩免费看| 精品偷拍各种wc美女嘘嘘| 国产精品视频成人|