Используя iOS SDK для создания plist во время выполнения? - PullRequest
3 голосов
/ 09 декабря 2011

Я новичок в разработке для iPhone. Я хочу знать, есть ли какой-нибудь пример кода Objective C для создания plist во время выполнения, получая данные от веб-сервера, и я хочу знать, каким должен быть формат данных, чтобы я мог легко создать plist во время выполнения.

Ответы [ 3 ]

9 голосов
/ 09 декабря 2011

Очень просто с NSDictionary :

#define DOCUMENTS_PATH [NSSearchPathForDirectoriesInDomains(NSDocumentsDirectory, NSUserDomainMask, YES) objectAtIndex:0]

NSDictionary *myDictionary = [self parseWebResult];

// note that myDictionary must only contain values of string, 
// int, bool, array (once again containing only the same types), 
// and other primitive types (I believe NSDates are valid too).
[myDictionary writeToFile:[DOCUMENTS_PATH stringByAppendingPathComponent:@"myDict.plist"] atomically:YES];

// reading in the dictionary
myDictionary = [NSDictionary dictionaryWithContentsOfFile:[DOCUMENTS_PATH stringByAppendingPathComponent:@"myDict.plist"]];
2 голосов
/ 10 декабря 2011

Файлы Plist в основном используются Mac OS X для хранения сериализованных объектов способом ключ / значение.Существует несколько видов файлов списка свойств;ASCII, XML и Binary. Так что в вашем случае ваш сервер должен отправлять данные в формате xml. После получения данных с сервера вы можете генерировать plist во время выполнения.Вы можете использовать приведенный ниже код для записи данных в файл .plist.

- (void)writeToPlist{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"WebData.plist"];
NSArray *dataToSave = [dataToSave writeToFile:filePath atomically:YES];
}

Пожалуйста, укажите этот и эти ссылки для серверной стороны также link1 link2 ссылка 3 ссылка 4 .

1 голос
/ 09 декабря 2011
// Get the full path of file in NSDocuments 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"MyData.plist"];

// Save data to file
NSArray *dataToSave = /* put data in it */;
[dataToSave writeToFile:filePath atomically:YES];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...