Создать файл plist с помощью кода - PullRequest
0 голосов
/ 12 марта 2012

Я хочу создать файл plist следующим образом:

Not made with code.

в коде, и тогда он будет в папке Caches. Я уже знаю, как получить данные.

Ответы [ 3 ]

4 голосов
/ 12 марта 2012

Вы можете сделать это так:

//Create a Mutant Dictionary
NSMutableDictionary *theMutantDict = [[NSMutableDictionary alloc] init];

//Fill it with data
[theMutantDict setObject:@"John" forKey:@"Name"];
[theMutantDict setObject:@"Doe" forKey:@"Lastname"];

//Then search for cache dir 
NSString *libraryDir = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, 
                  NSUserDomainMask, YES) objectAtIndex:0];
NSString *cacheDir = [libraryDir stringByAppendingPathComponent:@"Caches"];

//Then write the file
NSString *filePath = [cacheDir stringByAppendingString:@"/TheFile.plist"];
[theMutantDict writeToFile:filePath atomically:YES];
3 голосов
/ 12 марта 2012

Просто используйте метод writeToFile NSArray для хранения массива в plist и arrayWithContentsOfFile для его загрузки.

[self.array writeToFile:path atomically:YES];

self.array = [[NSArray arrayWithContentsOfFile:path];

// or in case you need to add/remove objects (NSMutableArray):
self.array = [[[NSArray arrayWithContentsOfFile:path] mutableCopy] autorelease];
1 голос
/ 12 марта 2012

Если вы сохранили данные в NSArray, это так просто:

// filling array with data ...

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cachePath = [paths objectAtIndex:0];
NSString *plistPath = [cachePath stringByAppendingPathComponent:@"my_nsarray_data.plist"];
[klasserArray writeToFile:plistPath atomically:YES];

// other stuff ...
...