NSArray的基本使用

NSArray基本概念
  • 只能存放任意OC對(duì)象,并且是有序的
  • 不能存儲(chǔ)非OC對(duì)象,比如int\float\double\char\enum\struct等
  • 是不可變的,一旦初始化完畢,里面的內(nèi)容固定不變丰刊,不可刪除里面的元素,也不能增加元素
NSArray創(chuàng)建方式
  • 通常我們創(chuàng)建NSArray的時(shí)候增拥,我們使用類方法進(jìn)行創(chuàng)建
+ (instancetype)array;
+ (instancetype)arrayWithObject:(ObjectType)anObject;
+ (instancetype)arrayWithObjects:(ObjectType)firstObj, ...;
+ (instancetype)arrayWithArray:(NSArray<ObjectType> *)array;
+ (nullable NSArray<ObjectType> *)arrayWithContentsOfFile:(NSString *)path;
+ (nullable NSArray<ObjectType> *)arrayWithContentsOfURL:(NSURL *)url;
NSArray的注意事項(xiàng)
  • NSArray中不能存儲(chǔ)nil啄巧,因?yàn)镹SArray認(rèn)為nil是數(shù)組的結(jié)束標(biāo)記
NSArray的常用方法
NSArray *arr = @[@"123",@"456",@"6777"];

// 獲取數(shù)組元素個(gè)數(shù)
NSUInteger count = [arr count];

// 獲取index位置的元素
NSString *str1 = [arr objectAtIndex:0];

// 是否包含某一個(gè)元素
BOOL isContain = [arr containsObject:@"123"];

// 返回最后一個(gè)元素
NSString *str2 = [arr lastObject];

// 返回第一個(gè)元素
NSString *str3 = [arr firstObject];

// 查找元素在數(shù)組中得位置,如果找不到返回-1
int index = [arr indexOfObject:@"111"];
快速創(chuàng)建方式
NSArray *arr = @[@"123", @"qwe"];
遍歷數(shù)組
NSArray *arr = @[@"3",@"1",@"4",@"10",@"5"];
// 下標(biāo)遍歷
for (int i = 0; i < arr.count; i++) {
    NSLog(@"%@",arr[i]);
}

// 快速遍歷
for (NSString *str in arr) {
    NSLog(@"%@",str);
}

// 使用block遍歷
// stop用來控制什么時(shí)候遍歷停止掌栅,*stop = YES 將停止遍歷
[arr enumerateObjectsUsingBlock:^(NSString *obj, NSUInteger idx, BOOL * _Nonnull stop) {
    NSLog(@"%@",obj);
}];
給NSArray中所有元素發(fā)消息
  • 如果集合中保存的是自定義對(duì)象秩仆,想讓集合中得所有對(duì)象都執(zhí)行某一個(gè)方法的時(shí)候
  • 可以使用以下兩個(gè)方法
  • 如果數(shù)組中的對(duì)象沒有這個(gè)方法會(huì)報(bào)錯(cuò)
[arr makeObjectsPerformSelector:@selector(方法名)];
[arr makeObjectsPerformSelector:@selector(方法名:) withObject:@""];
NSArray排序
  • 數(shù)組中得元素都是Foundation框架中的對(duì)象,不是自定義對(duì)象
  • 使用compare:方法進(jìn)行排序
NSArray *arr = @[@3,@1,@4,@10,@5];
NSArray *newArr1 = [arr sortedArrayUsingSelector:@selector(compare:)];
  • 下面的這個(gè)方法可以針對(duì)Foundation框架中的對(duì)象猾封,也可以是自定義對(duì)象
  • 默認(rèn)是升序排序
  • block中的兩個(gè)參數(shù)類型可以根據(jù)數(shù)組中元素的類型進(jìn)行更改
NSArray *arr = @[@3,@1,@4,@10,@5];
NSArray *newArr2 = [arr sortedArrayUsingComparator:^NSComparisonResult(NSNumber *obj1, NSNumber *obj2) {
     return obj1 > obj2;
}];
NSArray與NSString之間的轉(zhuǎn)換
  • NSArray 轉(zhuǎn)換為 NSString
  • - (NSString *)componentsJoinedByString:(NSString *)separator;
  • separator 插入元素之間的字符串
NSArray *arr = @[@3,@1,@4,@10,@5];
NSString *str = [arr componentsJoinedByString:@"--"];
  • NSString 轉(zhuǎn)換成 NSArray
  • - (NSArray<NSString *> *)componentsSeparatedByString:(NSString *)separator;
  • eparator 最為分割符切割字符串
NSString *str1 = @"3--1--4--10--5";
NSArray *arr1 = [str1 componentsSeparatedByString:@"--"];
NSArray文件讀寫
  • 將數(shù)組寫入文件
  • 數(shù)組元素必須是Foundation框架中類創(chuàng)建的對(duì)象
  • 如果是自定義對(duì)象將沒有辦法寫入
NSArray *arr = @[@"123",@"awe11",@"zdxcq"];
[arr writeToFile:@"/Users/coder/Desktop/sublime.plist" atomically:YES];
  • 從文件中讀取數(shù)據(jù)到NSArray中
NSArray *arr1 = [NSArray arrayWithContentsOfFile:@"/Users/coder/Desktop/sublime.plist"];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末逗概,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子忘衍,更是在濱河造成了極大的恐慌,老刑警劉巖卿城,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枚钓,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡瑟押,警方通過查閱死者的電腦和手機(jī)搀捷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來多望,“玉大人嫩舟,你說我怎么就攤上這事』惩担” “怎么了家厌?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長椎工。 經(jīng)常有香客問我饭于,道長,這世上最難降的妖魔是什么维蒙? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任掰吕,我火速辦了婚禮,結(jié)果婚禮上颅痊,老公的妹妹穿的比我還像新娘殖熟。我一直安慰自己,他們只是感情好斑响,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布菱属。 她就那樣靜靜地躺著钳榨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪照皆。 梳的紋絲不亂的頭發(fā)上重绷,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音膜毁,去河邊找鬼昭卓。 笑死,一個(gè)胖子當(dāng)著我的面吹牛瘟滨,可吹牛的內(nèi)容都是我干的候醒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼杂瘸,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼倒淫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起败玉,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤敌土,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后运翼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體返干,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年血淌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了矩欠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡悠夯,死狀恐怖癌淮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情沦补,我是刑警寧澤乳蓄,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站夕膀,受9級(jí)特大地震影響栓袖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜店诗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一裹刮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧庞瘸,春花似錦捧弃、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嘴办。三九已至,卻和暖如春买鸽,著一層夾襖步出監(jiān)牢的瞬間涧郊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來泰國打工眼五, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留妆艘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓看幼,卻偏偏與公主長得像批旺,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子诵姜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

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

  • NSArray特點(diǎn): 一旦創(chuàng)建成功,內(nèi)容不可改變只能存放OC對(duì)象 NSArray常用方法: NSArray簡(jiǎn)化形式...
    以太死多閱讀 49,651評(píng)論 2 12
  • 大綱 26.Protocol-協(xié)議 27.delegate-代理 28.Foundation框架介紹 29.NSS...
    天天想念閱讀 1,361評(píng)論 0 2
  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,152評(píng)論 30 470
  • 本文為轉(zhuǎn)載: 作者:zyydeveloper 鏈接:http://www.reibang.com/p/5f776a...
    Buddha_like閱讀 876評(píng)論 0 2
  • 那一年汽煮,那節(jié)課,男主徐來遇見了坐在前排清新脫俗棚唆、靈動(dòng)張揚(yáng)的楊伊暇赤,遭遇了坐在后排大大咧咧、粗俗庸常的蔡波宵凌。 你以為這...
    來顆寶塔糖閱讀 787評(píng)論 0 0