I have plist in my iphone app and I want to read and write an integer from my single to and form it.
I have this to read it:
scoreData *score = [scoreData sharedData];
filePath = @"stats.plist";
NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
score.highScore = [plistDict objectForKey:@"score"];
Then to write to it:
scoreData *score = [scoreData sharedData];
NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
[plistDict setValue:score.highScore forKey:@"score"];
[plistDict writeToFile:filePath atomically: YES];
I am getting an error in both parts:
Invalid conversion form objc_object* to int
and
Invalid conversion form int to objc_object
I appreciate any help, thanks.
Two things:
When you're setting a key in a dictionary, you're probably after setObject:forKey:
instead of setValue:forKey:
.
Dictionaries hold objects (type id
or NSString*
or your own Obj-C objects), not primitive types (int, BOOL, etc).
When you want to store a primitive type in an Obj-C collection, you can "wrap" it in an object like this:
[plistDict setObject:[NSNumber numberWithInt:score.highScore] forKey:@"score"];
And get it back like this:
score.highScore = [[pListDict objectForKey:@"score"] intValue];
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With