Editing key inside array item - plist
- by F0u4d
I have the following plist:
<plist version="1.0">
<dict>
<key>General</key>
<dict>
<key>Table 1</key>
<array>
<dict>
<key>subheadingName</key>
<string>Item 1 of table 1</string>
<key>subheadingDetail</key>
<string>details about item 1</string>
</dict>
<dict>
<key>subheadingName</key>
<string>Item 2 of table 1</string>
<key>subheadingDetail</key>
<string>details about item 2!</string>
</dict>
<dict>
<key>subheadingName</key>
<string>Item 3 of table 1</string>
<key>subheadingDetail</key>
<string>details about item 3!</string>
</dict>
</array>
</dict>
<key>Table 2</key>
<dict>
<key>subheadingArr</key>
<array>
<dict>
<key>subheadingName</key>
<string>Item 1 of table 2</string>
<key>subheadingDetail</key>
<string>details about item 1</string>
</dict>
<dict>
<key>subheadingName</key>
<string>Item 2 of table 2</string>
<key>subheadingDetail</key>
<string>details about item 2!</string>
</dict>
<dict>
<key>subheadingName</key>
<string>Item 3 of table 2</string>
<key>subheadingDetail</key>
<string>details about item 3!</string>
</dict>
</array>
</dict>
</dict>
</plist>
I am trying to write and read the
I have made these 2 methods trying to read and write subheadingDetail for a specific subheadingName but they are wrong/incomplete and can't manage to get it work.
-(void)updateInfo:(NSString *)info forSubHeadingName:(NSString *)subheadingName {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"DeviceInformation.plist"];
NSMutableDictionary *data = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
[data setObject:info forKey:subheadingName];
[data writeToFile:path atomically:YES];
}
-(NSString *)readInfoForSubHeadingName:(NSString *)subheadingName {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"DeviceInformation.plist"];
NSMutableDictionary *data = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
return [data objectForKey:subheadingDetail];
}
Tried searching around the answers, but couldn't find anything similar to my issue.
Thanks in advance.