I looked at other similar questions, but nothing really worked.
I managed to write only one pair (object / key) of the dictionary (for example: setObject: itemProperties [0] forKey [0]) on my Plist. But I would like all objects and keys to be added. Until I managed (returned an error). Any help?
// Path to Documents Folder NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *path = [documentsDirectory stringByAppendingPathComponent:@"items.plist"]; NSFileManager *fileManager = [NSFileManager defaultManager]; if (![fileManager fileExistsAtPath: path]) { path = [documentsDirectory stringByAppendingPathComponent: [NSString stringWithFormat: @"items.plist"] ]; } NSMutableDictionary *items; if ([fileManager fileExistsAtPath: path]) { items = [[NSMutableDictionary alloc] initWithContentsOfFile: path]; } else { // If the file doesn't exist, create an empty dictionary items = [[NSMutableDictionary alloc] initWithCapacity:5]; } // array of the item properties NSArray *itemProperties = @[myItem.itemTitle, myItem.itemImage, myItem.itemPositionX, myItem.itemPositionY, myItem.itemHeight, myItem.itemWidth]; // Set the key values for each field NSArray *keys = @[@"Title", @"Image", @"PositionX", @"PositionY", @"Height", @"Width"]; [items setObject:itemProperties forKey:keys]; //Save dictionnary to Plist [items writeToFile: path atomically:YES]; if (![items writeToFile:path atomically:YES]) { NSLog(@"Error with creating Plist"); }
source share