NSArray所有 API 學習

NSArray全部API學習。

返回數組指定下標的元素

- ()objectAtIndex:(NSUInteger)index;

初始化數組

instancetype)init NS_DESIGNATED_INITIALIZER

初始化數組并且賦初值以及大小

- (instancetype)initWithObjects:(const [])objects count:(NSUInteger)cnt NS_DESIGNATED_INITIALIZER;

- (instancetype)initWithCoder:(NSCoder *)aDecoder NS_DESIGNATED_INITIALIZER;

@interface NSArray (NSExtendedArray)

- (NSArray *)arrayByAddingObject:()anObject;

追加其他數組返回新的數組

- (NSArray *)arrayByAddingObjectsFromArray:(NSArray *)otherArray;

分割數組為字符串

- (NSString *)componentsJoinedByString:(NSString *)separator;

判斷數組是否存在指定元素

- ()containsObject:()anObject;

格式化屬性列表

@propertyreadonlycopyNSString *description;

//10.本地格式化為一個屬性列表

- (NSString *)descriptionWithLocale:()locale;

//11.本地格式化為一個屬性列表,并且可以設置縮進

- (NSString *)descriptionWithLocale:()locale indent:(NSUInteger)level;

//12.arraydemo對象第一個交集元素

- ()firstObjectCommonWithArray:(NSArray *)otherArray;

//13.返回指定區域的對象

- ()getObjects:( __unsafe_unretained [])objects range:(NSRange)range;

//14.獲取指定元素的索引

- (NSUInteger)indexOfObject:()anObject;

//15.指定區域獲取元素的索引

- (NSUInteger)indexOfObject:()anObject inRange:(NSRange)range;

//16.獲取指定元素的索引

- (NSUInteger)indexOfObjectIdenticalTo:()anObject;

//17.指定區域獲取元素的索引

- (NSUInteger):()anObject inRange:(NSRange)range;

//18.判斷兩個數組對象是否相等

- ()isEqualToArray:(NSArray *)otherArray;

//19.第一個對象屬性

@property (nonatomic, readonly) firstObject NS_AVAILABLE(_6, _0);

//20.最后一個對象元素屬性

@propertynonatomicreadonlyid lastObject;

//21.返回一個枚舉對象

- (NSEnumerator *)objectEnumerator;

//22.返回一個翻轉的枚舉對象

- (NSEnumerator *)reverseObjectEnumerator;

//23.升序排序數組元素

@property (readonly, ) NSData *sortedArrayHint;

//24.調用指定方法排序數組元素

- (NSArray *)sortedArrayUsingFunction:(NSInteger (*)(, , *))comparator context:( *)context;

//25.調用指定方法排序數組元素

- (NSArray *)sortedArrayUsingFunction:(NSInteger (*)(, , *))comparator context:( *)context hint:(NSData *)hint;

//26.指定比較方法排序數組元素

- (NSArray *)sortedArrayUsingSelector:()comparator;

//27.返回指定區域的數組元素組成新的數組元素

- (NSArray *)subarrayWithRange:(NSRange)range;

//28.保存數組對象到指定文件

- ()writeToFile:(NSString *)path atomically:()useAuxiliaryFile;

//29.保存數組對象到指定URL

- ()writeToURL:(NSURL *)url atomically:()atomically;

//30.每個數組元素都調用指定方法

- ()makeObjectsPerformSelector:()aSelector;

//31.每個數組元素都調用指定方法

- ()makeObjectsPerformSelector:()aSelector withObject:()argument;

//33.指定索引集合返回新數組

- (NSArray *)objectsAtIndexes:(NSIndexSet *)indexes;

//34.返回指定元素數組元素

- ()objectAtIndexedSubscript:(NSUInteger)idx NS_AVAILABLE(_8, _0);

//35.數組中的每個元素都執行代碼快中方法遍歷

- ()enumerateObjectsUsingBlock:( (^)( obj, NSUInteger idx, *stop))block NS_AVAILABLE(_6, _0);

//36.指定塊使數組每個元素都執行代碼塊中的代碼

- ()enumerateObjectsWithOptions:(NSEnumerationOptions)opts usingBlock:( (^)( obj, NSUInteger idx, *stop))block NS_AVAILABLE(_6, _0);

//37.遍歷數組每個元素執行代碼塊中的方法

- ()enumerateObjectsAtIndexes:(NSIndexSet *)s options:(NSEnumerationOptions)opts usingBlock:( (^)( obj, NSUInteger idx, *stop))block NS_AVAILABLE(_6, _0);

//38.根據條件來獲取一個NSUIndex對象,主要是根據條件進行數據遍歷使用

- (NSUInteger)indexOfObjectPassingTest:( (^)( obj, NSUInteger idx, *stop))predicate NS_AVAILABLE(_6, _0);

NSArray *array = [NSArrayarrayWithObjects@"wendy"@"andy"@"tom"@"test"

NSInteger index = [array indexOfObjectPassingTest:^ ( tr,NSUInteger index, *te){

NSString *s = (NSString *)tr;

([@"wendy" isEqualToString:s])

return ;

return ;

NSLog(@"index==%ld=.",()index);

2015-06-09 15:44:01.982 NSArray[5064:145993] index==0=.

//39.同上面的方法相同,區別在于,這里添加了一個參數,用來表示遍歷是從前向后遍歷還是從后向前遍歷

- (NSUInteger)indexOfObjectWithOptions:(NSEnumerationOptions)opts passingTest:( (^)( obj, NSUInteger idx, *stop))predicate NS_AVAILABLE(_6, _0);

//40.這個添加了參數NSIntexSet參數,用來獲取子數組,然后使用子數組進行遍歷,處理數據

- (NSUInteger)indexOfObjectAtIndexes:(NSIndexSet *)s options:(NSEnumerationOptions)opts passingTest:( (^)( obj, NSUInteger idx, *stop))predicate NS_AVAILABLE(_6, _0);

//41.根據block的處理獲取一個NSIndexSet對象

- (NSIndexSet *)indexesOfObjectsPassingTest:( (^)( obj, NSUInteger idx, *stop))predicate NS_AVAILABLE(_6, _0);

NSIndexSet *index = [array indexesOfObjectsPassingTest: ^ ( tr, NSUInteger index, *te){

NSString *s = (NSString *)tr;

([s isEqualToString:@"andy"]){

return ;

return ;

NSLog(@"%@",index);

2015-06-09 15:50:40.946 NSArray[5128:150086] [number of indexes: 1 (in 1 ranges), indexes: (1)]

//42.這個方法添加了參數,用來表示是從前向后遍歷還是從后向前遍歷

- (NSIndexSet *)indexesOfObjectsWithOptions:(NSEnumerationOptions)opts passingTest:( (^)( obj, NSUInteger idx, *stop))predicate NS_AVAILABLE(_6, _0);

NSIndexSet * index = [array indexesOfObjectsWithOptionsNSEnumerationReversepassingTestNSUInteger index, *te){

NSString *s = (NSString *)tr;

([s isEqualToString:@"andy"]){

return ;

return ;

NSLog(@"%@",index);

2015-06-09 16:18:53.974 NSArray[5283:158602] [number of indexes: 1 (in 1 ranges), indexes: (1)]

//43.添加參數NSIndexSet用來獲取子數組,使用子數組進行遍歷

- (NSIndexSet *)indexesOfObjectsAtIndexes:(NSIndexSet *)s options:(NSEnumerationOptions)opts passingTest:( (^)( obj, NSUInteger idx, *stop))predicate NS_AVAILABLE(_6, _0);

//44.對數組進行排序操作,參數cmptr是一個block函數塊,返回的數據類型是一個NSComparisonResult對象

- (NSArray *)sortedArrayUsingComparator:(NSComparator)cmptr NS_AVAILABLE(_6, _0);

//45.進行排序操作,NSSortOptions排序的參數用來表示是同時排序,還是穩定排序

- (NSArray *)sortedArrayWithOptions:(NSSortOptions)opts usingComparator:(NSComparator)cmptr NS_AVAILABLE(_6, _0);

NSArray *test = [array sortedArrayWithOptionsNSSortStableusingComparatorNSComparisonResultNSStringNSString *s2){

(s.length < s2.length){

returnNSOrderedAscending

(s.length > s2.length){

returnNSOrderedDescending

returnNSOrderedSame

NSLog(@"%@",test);

2015-06-09 16:24:34.498 NSArray[5332:161773] (

tom,

andy,

test,

wendy

)

typedef NS_OPTIONS(NSUInteger, NSBinarySearchingOptions) {

NSBinarySearchingFirstEqual = (UL << ),

NSBinarySearchingLastEqual = (UL << ),

NSBinarySearchingInsertionIndex = (UL << ),

//46.指定區域返回通過代碼塊方法的索引

- (NSUInteger)indexOfObject:()obj inSortedRange:(NSRange)r options:(NSBinarySearchingOptions)opts usingComparator:(NSComparator)cmp NS_AVAILABLE(_6, _0); // binary search

@interface NSArray (NSArrayCreation)

//47.快速創建一個空數組

instancetype)array;

//48.指定一個元素創建數組對象

+ (instancetype)arrayWithObject:()anObject;

//49.指定個數從一個數組對象創建新的數組對象

+ (instancetype)arrayWithObjects:(const [])objects count:(NSUInteger)cnt;

//50.指定多個元素創建數組對象

+ (instancetype)arrayWithObjects:()firstObj, ... NS_REQUIRES_NIL_TERMINATION;

//51.生成新的另外一個數組

+ (instancetype)arrayWithArray:(NSArray *)array;

//52.指定個數從一個數組對象創建新的數組對象

- (instancetype)initWithObjects:()firstObj, ... NS_REQUIRES_NIL_TERMINATION;

//53.從已有數組初始化

- (instancetype)initWithArray:(NSArray *)array;

//54.從已有數組初始化(標示作用,潛復制,還是深復制)

- (instancetype)initWithArray:(NSArray *)array copyItems:()flag;

//55.從文件加載數組元素

+ (NSArray *)arrayWithContentsOfFile:(NSString *)path;

//56.從網絡地址加載數組元素

+ (NSArray *)arrayWithContentsOfURL:(NSURL *)url;

//57.從文件加載數據

- (NSArray *)initWithContentsOfFile:(NSString *)path;

//58.從文件加載數據

- (NSArray *)initWithContentsOfURL:(NSURL *)url;

/****************Mutable Array****************/

@interface NSMutableArray : NSArray

//59.

- ()addObject:()anObject;

//60.指定索引位置插入對象

- ()insertObject:()anObject atIndex:(NSUInteger)index;

//61.移除最后一個對象

- ()removeLastObject;

//62.移除指定索引位置對象

- ()removeObjectAtIndex:(NSUInteger)index;

//63.替換指定索引位置對象

- ()replaceObjectAtIndex:(NSUInteger)index withObject:()anObject;

//64.初始化數組

instancetype)init NS_DESIGNATED_INITIALIZER

//65.初始化數組并且指定大小

- (instancetype)initWithCapacity:(NSUInteger)numItems NS_DESIGNATED_INITIALIZER;

- (instancetype)initWithCoder:(NSCoder *)aDecoder NS_DESIGNATED_INITIALIZER;

@interface NSMutableArray (NSExtendedMutableArray)

//66.追加新數組A到指定數組B后面

- ()addObjectsFromArray:(NSArray *)otherArray;

//67.交換指定索引之間的對象

- ()exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2;

//68.移除所有的數組數據

- ()removeAllObjects;

//69.移除知道那個區域指定對象

- ()removeObject:()anObject inRange:(NSRange)range;

//70.移除指定對象

- ()removeObject:()anObject;

//71.移除指定區域指定對象

- ()removeObjectIdenticalTo:()anObject inRange:(NSRange)range;

//72.移除指定對象

- ()removeObjectIdenticalTo:()anObject;

//73.移除指定索引之間的對象

- ()removeObjectsFromIndices:(NSUInteger *)indices numIndices:(NSUInteger)cnt NS_DEPRECATED(_0, _6, _0, _0);

//74.移除數組包含的指定數組的元素

- ()removeObjectsInArray:(NSArray *)otherArray;

//75.移除指定區域所有對象

- ()removeObjectsInRange:(NSRange)range;

//76.指定數組的指定區域的元素替換為數組指定區域元素

- ()replaceObjectsInRange:(NSRange)range withObjectsFromArray:(NSArray *)otherArray range:(NSRange)otherRange;

//77.指定數組替換數組指定區域的元素

- ()replaceObjectsInRange:(NSRange)range withObjectsFromArray:(NSArray *)otherArray;

//78.AB

- ()setArray:(NSArray *)otherArray;

//79.指定方法升序比較

- ()sortUsingFunction:(NSInteger (*)(, , *))compare context:( *)context;

//80.指定方法升序比較

- ()sortUsingSelector:()comparator;

//81.指定索引集合插入數組元素

- ()insertObjects:(NSArray *)objects atIndexes:(NSIndexSet *)indexes;

//82.移除指定索引集合元素

- ()removeObjectsAtIndexes:(NSIndexSet *)indexes;

//83.替換指定索引集合的數組元素

- ()replaceObjectsAtIndexes:(NSIndexSet *)indexes withObjects:(NSArray *)objects;

//84.指定索引替換新的數組元素

- ()setObject:()obj atIndexedSubscript:(NSUInteger)idx NS_AVAILABLE(_8, _0);

//85.指定塊方法排序數組元素

- ()sortUsingComparator:(NSComparator)cmptr NS_AVAILABLE(_6, _0);

//86.指定塊比較數組

- ()sortWithOptions:(NSSortOptions)opts usingComparator:(NSComparator)cmptr NS_AVAILABLE(_6, _0);

@interface NSMutableArray (NSMutableArrayCreation)

//87.初始化數組并指定對象容量

+ (instancetype)arrayWithCapacity:(NSUInteger)numItems;

//88.指定路徑文件加載數據

+ (NSMutableArray *)arrayWithContentsOfFile:(NSString *)path;

//89.指定URL加載數據

+ (NSMutableArray *)arrayWithContentsOfURL:(NSURL *)url;

//90.指定路徑文件加載數據

- (NSMutableArray *)initWithContentsOfFile:(NSString *)path;

//91.指定URL加載數據

- (NSMutableArray *)initWithContentsOfURL:(NSURL *)url;

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,698評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,202評論 3 426
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,742評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,580評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,297評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,688評論 1 327
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,693評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,875評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,438評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,183評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,384評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,931評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,612評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,022評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,297評論 1 292
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,093評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,330評論 2 377

推薦閱讀更多精彩內容

  • 記錄-- 下面的例子以 NSArray *array = [NSArray arrayWithObjects:@"...
    北極圈生物閱讀 5,740評論 0 1
  • NSArray 用屬性表顯示一個數組的內容。 (NSString *)descriptionWithLocale:...
    其實也沒有閱讀 309評論 0 0
  • 大綱 26.Protocol-協議 27.delegate-代理 28.Foundation框架介紹 29.NSS...
    天天想念閱讀 1,371評論 0 2
  • 一手入空門,贈我空歡喜。 所有人都知道陳浪是個花花公子,倒也不負其名。 從小拈花惹草,小時候就...
    春草如夏閱讀 335評論 0 4
  • 過了而立之年,突然發覺世界再也不屬于70、80、90、00、10后。那世界到底屬于誰呢?和70、80、90以及之后...
    sheerunderdog閱讀 370評論 0 0