views:

101

answers:

2

Hi Everybody, 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.

A: 

One of some possibilities:

if (!listData) listData = [[NSMutableArray alloc] init];
[listData addObject:jobName];
Georg Fritzsche
Thank you very much Georg. Now it works.
UCU110
+3  A: 

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];
Dave DeLong
Thank you very much Dave DeLong. It helped me.
UCU110