I am using the method below to get an array from my plist and then increase a certain value by 1, then save it. However I log the array and the value doesn’t actually go up each time.
In my plist, I have an array and in that number values, each one is set to 0. So every time I run this again it goes back to 0 it seems.
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"Words.plist"];
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithContentsOfFile:finalPath];
NSMutableArray *errors = [dict objectForKey:[NSString stringWithFormat:@"Errors%d.%d", [[stageSelectionTable indexPathForSelectedRow] section] +1, [[stageSelectionTable indexPathForSelectedRow] row] +1]];
int a = [[errors objectAtIndex:wordIndexPath] intValue];
a += 1;
NSNumber *b = [NSNumber numberWithInt:a];
[errors replaceObjectAtIndex:wordIndexPath withObject:b];
[errors writeToFile:finalPath atomically:YES];
You can only write to a file in the documents-folder. You can’t write to your bundle!
You can use
NSFilemanagerto copy your Plist-File to the documents-folder.To get the path of your file:
To copy the file if it doesn’t exist:
Now you can write your
NSDictionaryto the Documents-Directory:But you really need to update the array in the dict!