I’ve been stuck on this for ever and I finally figured it out and now just out of the blue it stopped working again…
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [NSString stringWithFormat:@"%@/scoreCards.dgs",documentsDirectory];
NSMutableArray *savedArrayOfScorecards = [[NSMutableArray alloc]init];
savedArrayOfScorecards = [NSMutableArray arrayWithContentsOfFile:filePath];
[savedArrayOfScorecards addObject:currentScoreCard];
[savedArrayOfScorecards writeToFile:filePath atomically:YES];
The file scoreCards.dgs is not even getting created…
What am I doing wrong?
There could be a couple things going wrong here.
1) The kind of data you’re storing in the array might not be encodable or archive-able to a file. And the code snippet you included doesn’t give a good hint as to what kind of data you’re trying to save. If you have custom objects in your array (i.e. things that are not NSString, NSNumber, NSDate, etc.), then that’s definitely the problem. There are plenty of questions here on StackOverflow that might help you solve this issue.
2) Your array’s filepath could be bogus. For example, you’re not checking to see if “documentsDirectory” is nil or valid or writeable.
3) Also possible, but not likely, “
savedArrayOfScorecards” might be a nil array. You should do error checking to make sure “savedArrayOfScorecards” was instantiated and that there is more than one object in the array.