NSArray和NSMutableArray使用

NSArray不可變數(shù)組

  • NSArray特點(diǎn)
  • NSArray的創(chuàng)建
  • NSArray常用方法
  • NSArray簡(jiǎn)化形式
  • NSArray的遍歷
  • NSArray讀寫文件
  • NSArray與字符串

1、NSArray特點(diǎn)

1舍肠、一旦創(chuàng)建成功,內(nèi)容不可改變(NSArray是不可變數(shù)組咐吼,NSMutableArray是可變數(shù)組)
2胁附、只能存放OC對(duì)象

2沾乘、NSArray的創(chuàng)建

創(chuàng)建一個(gè)空數(shù)組:
NSArray*arr1 =[NSArray  array]; 
創(chuàng)建多元素?cái)?shù)組:
NSArray *arr2 =  [NSArray arrayWithObject:@”one”,@”two”,@”three”,nil];  
用一個(gè)數(shù)組創(chuàng)建另一個(gè)數(shù)組:
NSArray *arr3 = [NSArray arrayWithArray: arr2];  

初始化方法:
init返回一個(gè)空數(shù)組
initWithArray從已有數(shù)組初始化
initWithContentsOfFile//從plist文件加載
initWithContentsOfUrl//從網(wǎng)絡(luò)地址上獲取
initWithObject用一個(gè)對(duì)象初始化
initWithObjects從多對(duì)象初始化

3俐末、NSArray常用方法

NSArray *arr = [NSArray arrayWithObject:@”one”,@”two”,@”three”,@”four”,nil];  
或者arr =@[@”one”,@”two”,@”three”,@”four”]; 
獲取數(shù)組的長(zhǎng)度恬砂,count獲取數(shù)組元素的個(gè)數(shù)
int arrLength = arr.count; 
arrLength = [arr count];  
根據(jù)下標(biāo)蛤铜,獲取下標(biāo)對(duì)應(yīng)的對(duì)象
NSString *str = [arr objectAtIndex:2];//打印出來(lái)的是three嘹叫,因?yàn)閿?shù)組元素是從0開(kāi)始的(0婆殿,1,2 . . .)  
返回元素的下標(biāo):
int intnum = [arr indexOfObject:”four”];//返回的下標(biāo)是3 
數(shù)組中是否包含了某個(gè)元素:
if ([arrcontainsObject:@”four”] == YES){  
    NSLog(@”包含此元素”);  
}else{  
    NSLog(@”不包含此元素”);  
} 

4待笑、NSArray簡(jiǎn)化形式

用簡(jiǎn)化的方法定義數(shù)組:
NSArray*arr = @[@”one”,@”two”,@”three”];  
訪問(wèn)數(shù)組元素:
NSString *str = [arr objectAtIndex:1];//返回two  
用簡(jiǎn)化的方法訪問(wèn)數(shù)組元素:
NSString *str =arr[1];//返回two  

5鸣皂、NSArray的遍歷

定義一個(gè)數(shù)組:
NSArray*arr = @[@”one”,@”two”,@”three”,@”four”];  
對(duì)數(shù)組進(jìn)行遍歷(兩種方法):
for (int i = 0;i < arr.count;i++){  
    NSLog(@”%@”,arr[i]);  
}  
或者
for (NSString *str  in arr){  
    NSLog(@”%@”,str);  
}  

6、NSArray讀寫文件

寫入
NSArray *arr = @[@”one”,@”two”,@”three”];  
把a(bǔ)rr中的內(nèi)容寫入到文件中,.plist是一種特殊的文件格式:
BOOL isWrite = [arr writeToFile:@”/Users/xingming/Desktop/arr.xml” atomically: YES];  
if (isWrite){  
    //判斷是否寫入成功寞缝,如果isWrite是真癌压,則執(zhí)行此方法  
    NSLog(@”success!”);  
}  
讀取
NSArray *readArr = [NSArray arrayWithContentsOfFile:@”/Users/xingming/Desktop/arr.xml”];  
NSLog(@”%@”,readArr);//打印  

7、NSArray與字符串

①把數(shù)組拼接成字符串
②把字符串拆分成數(shù)組

把數(shù)組拼接成字符串
定義一個(gè)數(shù)組:
NSArray*arr =@[@”1”,@”2”,@”3”,@”4”];  
把數(shù)組arr中的元素用“-”連接起來(lái)荆陆,變成1-2-3-4
NSString*str = [arr componentsJoinedByString: @”-”];  
NSLog(@”str = %@”,str);//打印結(jié)果:str = 1-2-3-4  
把字符串拆分成數(shù)組
NSArray *aArray = [str componentsSeparatedByString:@"-"];;  
NSLog(@”aArray= %@”,aArray);//打印 

NSMutableArray可變數(shù)組

  • 為數(shù)組分配內(nèi)存空間
  • 添加對(duì)象
  • 向尾部添加數(shù)組對(duì)象
  • 刪除數(shù)組元素
  • 替換某所引值對(duì)應(yīng)的對(duì)象
  • 數(shù)組迭代遍歷

1滩届、為數(shù)組分配內(nèi)存空間

為數(shù)組分配內(nèi)存空間
NSMutableArray *array = [NSMutabeArray arrayWithCapacity:10];  
//初始化可變數(shù)組對(duì)象的長(zhǎng)度,如果后面代碼繼續(xù)添加數(shù)組超過(guò)長(zhǎng)度10以后NSMutableArray的長(zhǎng)度會(huì)自動(dòng)擴(kuò)充被啼,10是自己可以設(shè)置的顆粒度帜消。

2、添加對(duì)象

添加對(duì)象
方法:- (void)addObject: (id)anObject;
例子:
NSMutableArray*array = [NSMutableArray arrayWithCapacity:10];  
[array addObject:@“One”];  
[array addObject:@“Two”];  
NSLog(@“array:%@”,array);  
打优ㄌ濉:  
array:(  
   One,  
   Two  
)  

3泡挺、向尾部添加數(shù)組對(duì)象

方法:addObjectsFromArray:
NSArray *array = @[@"One",@"Two",@"Three"];  
NSMutableArray*mutArr = [NSMutableArray arrayWithArray:array];  
NSLog(@“mutArr=%@”,mutArr);  
打印:  
 mutArr= (  
   One,  
   Two,  
    Three  
)  

4命浴、刪除數(shù)組元素

[array removeObject:(id)] :刪除數(shù)組中指定元素娄猫,根據(jù)對(duì)象isEqual消息判斷。
[array removeObjectIdenticalTo:(id)] :刪除數(shù)組中指定元素,根據(jù)對(duì)象的地址判斷
[array removeObjectIdenticalTo:(id) inRange:(NSRange)] :在指定范圍內(nèi)刪除指定的元素生闲。
[array removeObjectAtIndex:(NSUInteger)]:刪除數(shù)組中指定腳標(biāo)索引的數(shù)據(jù)媳溺。
[array removeObjectsInArray:(NSArray *)] :刪除一個(gè)數(shù)組的元素。
[array removeAllObjects]:刪除數(shù)組中所有的元素(清空數(shù)組)
說(shuō)明:array是可變數(shù)組

5碍讯、替換某所引值對(duì)應(yīng)的對(duì)象

方法:replaceObjectAtIndex:withObject:
NSMutableArray *mutArr = [NSMutableArray arrayWithObjects:@"One",@"Two",@"Three", nil];  
[mutArr replaceObjectAtIndex:2 withObject:@"Four"];  
NSLog(@"mutArr= %@",mutArr);  
打有巍:  
 mutArr= (  
   One,  
   Two,  
   Four  
) 

6、數(shù)組迭代遍歷

NSObject *obj = [[NSObject alloc] init];  
NSMutableArray*muArray = [NSMutableArray arrayWithCapacity:6];  
[muArray addObject:@"對(duì)象1"];  
[muArray addObject:@"對(duì)象2"];  
[muArray addObject:obj];  
NSEnumerator*enmuerator = [muArray objectEnumerator];  
id object;  
while(object = [enmueratornext Object]) {  
   NSLog(@"數(shù)組中的對(duì)象:%@",object);  
}  
打幼叫恕: 數(shù)組中的對(duì)象:對(duì)象1  
      數(shù)組中的對(duì)象:對(duì)象2  
      數(shù)組中的對(duì)象:<NSObject: 0x7a15d2d0>  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蝎困,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子倍啥,更是在濱河造成了極大的恐慌难衰,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逗栽,死亡現(xiàn)場(chǎng)離奇詭異盖袭,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)彼宠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門鳄虱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人凭峡,你說(shuō)我怎么就攤上這事拙已。” “怎么了摧冀?”我有些...
    開(kāi)封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵倍踪,是天一觀的道長(zhǎng)系宫。 經(jīng)常有香客問(wèn)我,道長(zhǎng)建车,這世上最難降的妖魔是什么扩借? 我笑而不...
    開(kāi)封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮缤至,結(jié)果婚禮上潮罪,老公的妹妹穿的比我還像新娘。我一直安慰自己领斥,他們只是感情好嫉到,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著月洛,像睡著了一般何恶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嚼黔,一...
    開(kāi)封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天导而,我揣著相機(jī)與錄音,去河邊找鬼隔崎。 笑死,一個(gè)胖子當(dāng)著我的面吹牛韵丑,可吹牛的內(nèi)容都是我干的爵卒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼撵彻,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼钓株!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起陌僵,我...
    開(kāi)封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤轴合,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后碗短,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體受葛,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年偎谁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了总滩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡巡雨,死狀恐怖闰渔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情铐望,我是刑警寧澤冈涧,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布茂附,位于F島的核電站,受9級(jí)特大地震影響督弓,放射性物質(zhì)發(fā)生泄漏营曼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一咽筋、第九天 我趴在偏房一處隱蔽的房頂上張望溶推。 院中可真熱鬧,春花似錦奸攻、人聲如沸蒜危。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)辐赞。三九已至,卻和暖如春硝训,著一層夾襖步出監(jiān)牢的瞬間响委,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工窖梁, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留赘风,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓纵刘,卻偏偏與公主長(zhǎng)得像邀窃,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子假哎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容