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阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容

  • 记录-- 下面的例子以 NSArray *array = [NSArray arrayWithObjects:@"...
    北极圈生物阅读 5,659评论 0 1
  • NSArray 用属性表显示一个数组的内容。 (NSString *)descriptionWithLocale:...
    其实也没有阅读 280评论 0 0
  • 大纲 26.Protocol-协议 27.delegate-代理 28.Foundation框架介绍 29.NSS...
    天天想念阅读 1,357评论 0 2
  • 一手入空门,赠我空欢喜。 所有人都知道陈浪是个花花公子,倒也不负其名。 从小拈花惹草,小时候就...
    春草如夏阅读 324评论 0 4
  • 过了而立之年,突然发觉世界再也不属于70、80、90、00、10后。那世界到底属于谁呢?和70、80、90以及之后...
    sheerunderdog阅读 356评论 0 0