2015-06-16 1 views
0

Я хочу создать файл plist с несколькими массивами и массивом в качестве типа Root. Я могу добавить несколько массивов в словаре, но я хочу добавить все массивы в один массив программно. возможно создать файл plist программно и записать данные массива в него. Пожалуйста, направляйте меня и дайте несколько примеров ссылок. Спасибо. Вот мой код, чтобы добавить массив в словаре:Как добавить несколько массивов в файл plist программным способом в iPhone

NSError *error; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"Demo.plist"]; 

NSFileManager *fileManager = [NSFileManager defaultManager]; 

if (![fileManager fileExistsAtPath: path]) 
{ 
    NSString *bundle = [[NSBundle mainBundle] pathForResource:@"Demo" ofType:@"plist"]; 

    [fileManager copyItemAtPath:bundle toPath: path error:&error]; 
} 

firstArray = [[NSMutableArray alloc] initWithObjects:@"15-5-123",@"15-5-12",nil]; 
secondArray = [[NSMutableArray alloc] initWithObjects:@"TestFiling",@"TestFiling",nil]; 
thirdArray = [[NSMutableArray alloc] initWithObjects:@"15132561",@"15135601", nil]; 

NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init]; 
[dictionary setObject:firstArray forKey:@"firstArray"]; 
[dictionary setObject:secondArray forKey:@"secondArray"]; 
[dictionary setObject:thirdArray forKey:@"thirdArray"]; 

[dictionary writeToFile:path atomically:NO]; 

NSDictionary *dictionary1; 
dictionary1 = [NSDictionary dictionaryWithContentsOfFile:path]; 
NSLog(@"dictionary1 %@",dictionary1); 

этот код работает отлично подходит для словаря, но я хочу, чтобы добавить массивы в массиве.

+0

Вы говорите, что вы можете добавить массивы в словаре, показать, что код и как вы пробовали изменения это для массива массивов – Wain

+0

Здесь ваш [Ответ] [1] следуют этому. [1]: http://stackoverflow.com/questions/3636524/how-to-write-multiple-arrays-in-plist-in-iphone?rq=1 –

+0

@Wain - Пожалуйста, смотрите мой отредактированный вопрос. Я добавил свой код. – iPhoneDev

ответ

0

Первая часть кода в порядке, вам просто нужно переключить вторую часть с использованием массива:

NSMutableArray *array = [[NSMutableDictionary alloc] init]; 
[array addObject:firstArray]; 
[array addObject:secondArray]; 
[array addObject:thirdArray]; 

[array writeToFile:path atomically:NO]; 

NSArray *array1 = [NSArray arrayWithContentsOfFile:path]; 
NSLog(@"array1 %@", array1);