NSArray类

作者:追风剑情 发布于:2019-3-1 12:17 分类:Objective-C

NSArray是不可变数组,数组中的元素必须是同一种类型。

常用的NSArray方法
方法 描述
+(instancetype) arrayWithObjects: obj1,obj2,...nil 创建一个新数组,obj1,obj2,...是其元素
-(BOOL) containsObject: obj 确定数组中是否包含对象obj(使用isEqual:方法)
-(NSUInteger) count 数组中元素的个数
-(NSUInteger) indexOfObject: obj 第一个包含对象obj的元素索引号(使用isEqual:方法)
-(NSUInteger) indexOfObjectPassingTest: (BOOL(^)(id obj, NSUInteger idx, BOOL *stop)) block 传递每个对象obj(带有索引号idx)到区块block中,如果obj通过测试返回YES,未通过返回NO,设置变量指针stop为YES结束处理
-(id) lastObject 返回数组最后的对象
-(id) objectAtIndex: i 存储在元素i的对象
-(void) makeObjectsPerform Selector: (SEL) selector 将selector指示的消息发送给数组中的每个元素
-(void) enumerateObjectsUsingBlock: (void(^)(id obj, NSUInteger idx, BOOL *stop)) block 通过块获取数组中的每个元素,包括对象obj和对应的索引号idx,只有当所有的元素都遍历完成或设置变量指针stop为YES才处理结束
-(NSArray *) sortedArrayUsingSelector: (SEL) selector 根据指定selector方法的比较器对数组进行排序
-(NSArray *) sortedArrayUsingComparator: (NSComparator) block

通过执行区块block对数组进行排序

-(BOOL) writeToFile: path atomically:(BOOL) flag 将数组写入指定的文件中,如果flag为YES,则先创建一个临时文件

示例一:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        int i;
        // 创建一个数组饱含月份的名称,最后一个元素必须以nil结尾
        NSArray *monthNames = [NSArray arrayWithObjects:
                               @"January", @"February", @"March",
                               @"April", @"May", @"june", @"July",
                               @"August", @"September", @"October",
                               @"November", @"December", nil];
        
        // 列出数组中所有的元素
        NSLog(@"Month Name");
        NSLog(@"===== =====");
        
        for (i = 0; i < 12; ++i)
            NSLog(@" %2i  %@", i + 1, [monthNames objectAtIndex: i]);
    }
    return 0;
}

运行测试
111.png

示例二:重写示例一

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        int i;
        // 创建一个数组饱含月份的名称
        NSArray *monthNames = @[@"January", @"February", @"March",
                               @"April", @"May", @"june", @"July",
                               @"August", @"September", @"October",
                               @"November", @"December"];
        
        // 列出数组中所有的元素
        NSLog(@"Month Name");
        NSLog(@"===== =====");
        
        for (i = 0; i < 12; ++i)
            NSLog(@" %2i  %@", i + 1, monthNames[i]);
    }
    return 0;
}



标签: Objective-C

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号