iOS - что я должен использовать для сохранения данных - PullRequest
2 голосов
/ 04 августа 2011

Представьте, что у вас есть список элементов, представляющий собой массив объектов (поля: заголовок, описание, дата), упорядоченных по дате.Вы выбираете элемент из списка и сохраняете его на локальном устройстве.Затем вы загружаете список сохраненных элементов в массив (UITableView), упорядоченный по дате.

Я думаю, что использование базовых данных является излишним.Что бы вы использовали и как?THx!

Ответы [ 4 ]

3 голосов
/ 04 августа 2011

Ну, я бы заставил Class реализовать NSCoding и сохранить объект в файл, используя NSKeyedArchiver;

. Вы можете просто пройти по каталогу и загрузить весь объект с помощью NSKeyedUnarchiver.

1 голос
/ 04 августа 2011

Если у вас не слишком много элементов в вашем массиве, было бы идеально использовать какое-то решение xml.

списки великолепны, потому что внутреннее хранилище легко читаемо и доступно для редактирования. Также есть встроенная функция, позволяющая легко превращать словари и массивы в списки. например ( writeToFile: атомарно: ) и ( arrayWithContentsOfFile: )

Обратите внимание, что вы можете использовать эти методы, только если ваши массивы / словари содержат только следующие элементы: NSString, NSData, NSArray или NSDictionary. В противном случае вам придется реализовать NSCoding , что немного больше работы.

Данные COre имеют много преимуществ, поэтому, если загрузка / поиск занимает много времени, рассмотрите возможность переключения.

0 голосов
/ 04 августа 2011

Используйте PList - это лучший и самый простой способ сохранить данные в приложении iphone.Я скажу вам, как это сделать.

это способ сохранить ваши данные в Plist.

//Create String to get data ... 

NSString *typeUrl = [NSString stringWithFormat:@"%@",url.text];

// Create Plist File

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

NSString *tempurl = [NSString stringWithFormat:@"%@",typeUrl];

// Remove data previously stored in plist file ... 

[[NSFileManager defaultManager]  removeItemAtPath:path error:NULL];

// Create NSMutableArray to Store your string ... 

NSMutableArray urlDetails = [[NSMutableArray alloc] init];  

// Add String to Array ... 
[urlDetails addObject:tempurl];

// Store that array in Plist File ... 

[urlDetails writeToFile:path atomically:YES];

это способ чтения данных из Plist.

// Find Plist file you created and cheack that file exsist ... 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"password.plist"];
    BOOL passwordfileExists = [[NSFileManager defaultManager] fileExistsAtPath:path];

    // if the file exsist create NSMutableArray and read the value and put that in to the String

    if (passwordfileExists == YES) {
        NSMutableArray* plistDict = [[NSMutableArray alloc] initWithContentsOfFile:path];
        NSString *value = [NSString stringWithFormat:@"%@",[plistDict objectAtIndex:0]];

        // Set that string to the textField

        oldpassText = [NSString stringWithFormat:@"%@",value];
    }

Это то, как я сохраняю данные в файл Plist, и это очень легко.Я думаю, что это поможет вам.

0 голосов
/ 04 августа 2011

Ну, у вас есть опция SQLite и Plist тоже ...

Я бы предпочел SQLite, поскольку сортировка данных будет проще ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...