创建数组NSArray与NSMutableArray(Objective-C 开发范例)

这篇博客介绍了在Objective-C中如何创建NSArray和NSMutableArray,用于组织对象列表。NSArray是不可变的,适合静态列表,而NSMutableArray则支持动态添加和删除对象。创建NSArray和NSMutableArray可以通过alloc+init或便捷函数arrayWithObjects:。示例代码展示了创建字符串数组的过程,并提到了NSArray和NSMutableArray的构造函数列表。

创建数组NSArray与NSMutableArray

问题

        应用需要在列表中组织对象。

解决方案

       Objective-C 提供了两个Foundation 类来创建对象列表,它们分别是NSArray 与NSMutableArray。如果列表不需要改变,那么请使用NSArray 类;如果要向数组添加和删除对象,那么请使用NSMutableArray 类。

说明

      在Objective-C 中,数组的创建与其他对象类似:使用alloc 与init 构造函数,或者使用诸如arrayWithObjects:之类的便捷函数创建数组。如果使用NSArray 创建数组,那么一旦数组创建完毕,就无法再进行修改。使用NSMutableArray 创建的数组可以在后面修改。

      下面的示例展示了如何创建字符串数组:

    NSArray *listOfLetters = [NSArray arrayWithObjects:@"A", @"B", @"C", nil];

       在使用arrayWithObjects:创建数组时,需要传递使用逗号分隔的对象列表并以nil 结束。该例使用了NSString 对象,但对于NSArray 与NSMutableArray 来说,可以使用任何对象,包括从自定义类实例化得来的对象。如果使用NSMutableArray,那么可以通过相同的构造函数来创建数组(NSMutableArray是NSArray 的子类)。如果后面还要向数组中添加对象,那么还可以通过alloc 与init 来创建NSMutableArray 对象。表3-1 列出了NSArray 与NSMutableArray 类的完整构造函数列表,程序清单3-1 列出了相关的代码。


代码

     程序清单1-1 main.m

#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
     @autoreleasepool {
         NSArray *listOfLetters1 = [NSArray arrayWithObjects:@"A", @"B", @"C", nil];
         NSLog(@"listOfLetters1 = %@", listOfLetters1);
         NSNumber *number1 = [NSNumber numberWithInt:1];
         NSNumber *number2 = [NSNumber numberWithInt:2];
         NSNumber *number3 = [NSNumber numberWithInt:3];

        NSMutableArray *listOfNumbers1 = [[NSMutableArray alloc]
         initWithObjects:number1, number2, number3, nil];
         NSLog(@"listOfNumbers1 = %@", listOfNumbers1);
         id list[3];
         list[0] = @"D";
         list[1] = @"E";
         list[2] = @"F";
         NSMutableArray *listOfLetters2 = [[NSMutableArray alloc]
         initWithObjects:list
         count:3];
         NSLog(@"listOfLetters2 = %@", listOfLetters2);
     }
     return 0;
}

使用

      要想使用上述代码,请从Xcode 构建并运行Mac 应用。通过日志查看每个数组的内容。接下来的攻略将会介绍如何引用这些数组元素,这样就可以将它们的内容打印到日志或是在程序的其他地方使用它们了。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值