初始化后更改NSArray的值

时间:2013-02-16 11:56:44

标签: objective-c nsmutablearray nsarray

对于我的作业,我必须将.h和.m写入命令行应用程序,主要由我的老师给出。它是一个简单的Chutes and Ladders风格板,可打印100个空格。

梯形和滑槽将由“L10”和“C10”表示,它存储在电路板表示的单维数组中。给定main的第一部分是initBoard,我想我将创建一个空字符串数组。梯形图和滑槽的数量在提供的代码的下两行中给出,我想通过他们的方法随机填充电路板。

如果我在“initBoard”中使用for循环(主要调用的第一件事)方法来构建一个大小为100的NSArray,用空的stings填充它,将我可以在我的“makeLadders”和“makeChutes”方法中将空字符串更改为我想要的“L10”和“C10”字符串,或者我是否必须使用NSMutableArray这样的东西? < / p>

我已经读过NSArray是不可变的,这意味着它在init之后无法修改,因此如果希望修改数组的内容,必须使用NSMutableArray。我的老师特别提到NSArrays应该保存董事会数据,所以我很困惑。

1 个答案:

答案 0 :(得分:1)

你有两个选择:

  1. 包含NSString对象的可变数组;
  2. 包含NSMutableString对象的不可变数组。
  3. 首选示例:

    NSMutableArray* array=[[NSMutableArray alloc] initWithCapacity: 100];
    for(NSUInteger i=0; i<100; i++)
    {
        [array addObject: @""];
    }
    

    要更改值,请使用:

    [array replaceObjectAtIndex: i withObject: @"New String"];