Как сохранить строки текста в списке свойств на iPhone? - PullRequest
0 голосов
/ 19 января 2010

Это мой сценарий: мне нужно сохранить 50 строк текста и получить доступ к каждой строке текста после запуска моих приложений. То есть, для изменения в параметре управления текст, отображаемый на iPhone, должен измениться (т.е. указать на вторую строку текста, затем на третью ...). Вместо SQLite я хочу сохранить эти данные в списке свойств, а затем получить к ним соответствующий доступ (никаких изменений в модели данных не требуется).

Изначально я думал о создании экземпляра NSDictionary и хранении строковых объектов (текстовых строк). Однако дилемма заключается в следующем: как мне создать список свойств для вышеупомянутого случая, а затем получить доступ к данным во время выполнения.

Пример кода будет очень признателен. Я пытался разобраться со списками недвижимости, но все еще не могу их выяснить. Спасибо.

1 Ответ

2 голосов
/ 19 января 2010

Если я правильно понял, вы пытаетесь сохранить файл plist в каталоге документов вашего приложения.Вот как вы читаете файл plist, встроенный в ваш пакет приложений, а затем сохраняете его в своем каталоге документов:

- (void)applicationDidFinishLaunching:(UIApplication *)application 
{
    // If your plist file is in the app bundle, and is called "file.plist":
    NSString *path = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"plist"];
    NSArray *array = [[NSArray alloc] initWithContentsOfFile:path];

    // Do something with your array...

    // If your plist has to be created or saved at runtime, you can't store it in the
    // main bundle, but you can do it in the app's document directory:
    NSString *documents = [self documentsDirectory];
    path = [documents stringByAppendingPathComponent:@"another_file.plist"];
    [array writeToFile:path atomically:YES];
    [array release];

    // ~/Library/Application Support/iPhone Simulator/User/Applications/[YOUR_APP_ID_HERE]/Documents/another_file.plist
    NSLog(@"%@", path);

    // You can read the file later again doing initWithContentsOfFile: again
    // with the new file path.

    [window makeKeyAndVisible];
}

- (NSString *)documentsDirectory
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    return [paths objectAtIndex:0];
}

Файл file.plist может выглядеть примерно так:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
    <string>test</string>
    <string>wetwert</string>
    <string>dfdfh</string>
    <integer>345634</integer>
</array>
</plist>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...