简体   繁体   中英

how to add object to NSMutableArray

I am trying to read an input file (if it exists) and then want to add a string to that input. My code looks as follows.

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];

if the input exists then after addObject:jobName , the listData is updated but if the input file does not exist the listData still gives null after addObject:jobName . My input file (if exists) looks something like.

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

I want to add the string in the existing array of strings or want to create a new array of string jobName if it is not already there. Can somebody help me out. Which method I should use to create a new array of string when the input file does not exist.

One of some possibilities:

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

From the documentation :

- (id)initWithContentsOfFile:(NSString *)aPath

An array initialized to contain the contents of the file specified by aPath or nil if the file can't be opened or the contents of the file can't be parsed into an array. The returned object might be different than the original receiver.

So if the file doesn't exist, you'll have to create the array manually using:

listData = [[NSMutableArray alloc] init];

You Can Add Object in NSMutableArray using two methods

  1. addObject
  2. insertObject:atIndex

1.using addObject

[myMutableArray addObject:myObject];

2.using inserObject:atIndex

[myMutableArray insertObject:myObject atIndex:index];

Note: Index value must be valid(Within Range)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM