1

对于我的作业,我必须将 .h 和 .m 写入命令行应用程序,主要由我的老师给出。它是一个简单的滑道和梯子样式板打印输出 100 个空间。

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

如果我在“initBoard”(main 调用的第一件事)方法中使用 for 循环来构建一个大小为 100 的 NSArray,并用空字符串填充它,我是否能够将空字符串更改为“L10”和我想要的“makeLadders”和“makeChutes”方法中的“C10”字符串,还是我必须使用 NSMutableArray 来完成类似的事情?

我读过 NSArray 是不可变的,这意味着它在初始化后无法修改,因此如果希望修改数组的内容,则必须使用 NSMutableArray。我的老师特别提到 NSArrays 作为应该保存板数据的东西,所以我很困惑。

4

1 回答 1

1

您在这里有两个选择:

  1. 一个包含 NSString 对象的可变数组;
  2. 一个包含 NSMutableString 对象的不可变数组。

第一个选择的示例:

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

要更改值,请使用:

[array replaceObjectAtIndex: i withObject: @"New String"];
于 2013-02-16T12:00:01.727 回答