如何向NSMutableArray添加对象

17

我正在尝试读取一个输入文件(如果存在),并想要向该输入文件添加一个字符串。我的代码如下所示。

NSMutableArray *listData = [[NSMutableArray alloc] initWithContentsOfFile:*filepath*];
// listData = null if the input file does not exist.
NSString *jobName = [NSString stringWithFormat:@"My New Job"];
[listData addObject:jobName];

如果输入文件存在,则在执行 addObject:jobName 后,listData 会得到更新。但是,如果输入文件不存在,则在执行 addObject:jobName 后,listData 仍然为 null。我的输入文件(如果存在)大致如下:

<array>
      <string>My Job 1</string>
      <string>My Job 2</string>
      <string>My Job 3</string>
</array>

我想将字符串添加到现有的字符串数组中或创建一个新的字符串数组'jobName'(如果它不存在)。有人能帮我吗?当输入文件不存在时,应使用哪种方法来创建新的字符串数组。

3个回答

36

其中一种可能性:

if (!listData) listData = [[NSMutableArray alloc] init];
[listData addObject:jobName];

5

根据文档

- (id)initWithContentsOfFile:(NSString *)aPath

将初始化一个数组以包含由aPath指定的文件的内容,如果无法打开该文件或该文件的内容无法解析为数组,则返回nil。返回的对象可能与原始接收器不同。

因此,如果文件不存在,则必须手动创建数组:

listData = [[NSMutableArray alloc] init];

非常感谢Dave DeLong。这对我很有帮助。 - UCU110

4
您可以使用两种方法将对象添加到NSMutableArray中:
  1. 使用addObject方法
  2. 使用insertObject:atIndex方法

1.使用addObject方法:

[myMutableArray addObject:myObject];

2.使用insertObject:atIndex方法

[myMutableArray insertObject:myObject atIndex:index];

注意:索引值必须有效(在范围内)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接