首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

Objective-C NSArray 完整操作指南

     編輯:關於C++

創建與初始化

// 類方法(自動釋放)
NSArray *arr1 = [NSArray arrayWithObjects:@"A", @"B", nil];
NSArray *arr2 = [NSArray arrayWithObject:@"Single"]; // 單元素
// 實例方法
NSArray *arr3 = [[NSArray alloc] initWithObjects:@"X", @"Y", nil];
// 從現有數組創建
NSArray *arr4 = [NSArray arrayWithArray:arr1];
// 字面量語法(現代推薦)
NSArray *arr5 = @[@"A", @"B", @"C"];

訪問元素

id obj = [arr objectAtIndex:0];      // 越界崩潰
id obj = arr[0];                      // 現代語法,同越界崩潰
NSUInteger idx = [arr indexOfObject:@"A"]; // 未找到返回 NSNotFound
BOOL contains = [arr containsObject:@"A"];
NSUInteger count = arr.count;         // 或 [arr count]

轉換與拼接

// 數組 → 字符串(指定分隔符)
NSString *joined = [arr componentsJoinedByString:@","];
// 字符串 → 數組(指定分隔符)
NSArray *split = [joined componentsSeparatedByString:@","];
// 獲取首尾
id first = [arr firstObject]; // 或 arr[0]
id last  = [arr lastObject];  // 或 arr[count-1]

遍歷方式

// 快速枚舉(推薦,效率高、語法簡潔)
for (id obj in arr) { NSLog(@"%@", obj); }
// 索引遍歷
for (NSUInteger i = 0; i < arr.count; ++i) { NSLog(@"%@", arr[i]); }
// 反向遍歷
for (NSUInteger i = arr.count; i-- > 0; ) { NSLog(@"%@", arr[i]); }

可變數組 NSMutableArray

NSMutableArray *marr = [NSMutableArray array];
[marr addObject:@"New"];
[marr insertObject:@"At0" atIndex:0];
[marr removeObjectAtIndex:0];
[marr removeObject:@"Value"];      // 刪除所有匹配值
[marr removeAllObjects];
[marr exchangeObjectAtIndex:0 withObjectAtIndex:1];
[marr sortUsingSelector:@selector(compare:)];

內存管理要點

  • 類方法返回自動釋放對象(ARC 下無感)。
  • 數組強引用持有元素,元素被移除時釋放引用。
  • NSArray 不可變,NSMutableArray 可變,二者可互轉(mutableCopy/copy)。

完整示例

int main() {
    @autoreleasepool {
        NSArray *arr = @[@"Apple", @"Banana", @"Cherry"];
        NSLog(@"原始: %@", arr);
        NSLog(@"長度: %lu", (unsigned long)arr.count);
        NSLog(@"包含Banana: %@", [arr containsObject:@"Banana"] ? @"YES" : @"NO");
        NSLog(@"拼接: %@", [arr componentsJoinedByString:@" | "]);
        for (NSString *s in arr) NSLog(@"> %@", s);
    }
    return 0;
}

總結

NSArray 是 iOS/Mac 開發中最高頻的集合類。掌握 字面量創建、下標訪問、快速枚舉、轉換拼接、可變/不可變轉換 五大核心操作,覆蓋 95% 日常場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved