2012-01-06 2 views
0

У меня есть NSString, что я могу решить, формат, в котором я буду хранить контактные группы и членов группы, например, так:Разбор строки в прошивкой

Friends|John Smith|Jane Doe 
Imaginary Friends|Mary Poppins|Harry Potter|Arya Stark 
(\n after last member name) 

«|» это временный разделитель, который я использую, потому что он вряд ли появится в контактах и ​​именах групп.

Я сохраняю это в файле и должен извлекать имена групп и групп в качестве NSStrings при следующем загрузке этого файла. Как мне это сделать?

+0

Во-первых, вы можете хранить ваши имена в массиве, так что вы можете сортировать их и т.д. Вы всегда можете добавить запятую, |, или любой другой, когда вы пишете в файл, но ваша жизнь будет легче без при попытке сделать сортировку или другие операции. Во-вторых, рассмотрите возможность использования существующего формата файла. Например, есть хорошие библиотеки JSON, и вы можете сохранить массив прямо в JSON, а затем вернуть его обратно в свою программу в виде массива. – Rab

+1

Почему бы просто не написать массив в файл и из него? См. Http://stackoverflow.com/questions/1487606/saving-a-nsarray – bryanmac

ответ

2

Я думаю, что вы хотите посмотреть на метод NSString - (NSArray *)componentsSeparatedByCharactersInSet:(NSCharacterSet *)separator или - (NSArray *)componentsSeparatedByString:(NSString *)separator

например

NSArray* members = [contactLine componentsSeparatedByCharactersInSet: [NSCharacterSet characterSetWithCharactersInString: @"|"]]; 
+0

Так я и закончил это, но теперь, чтобы подумать об этом, я не думаю, что синтаксические строки были правильными способ сохранить информацию. Спасибо в любом случае за быстрый ответ. – Serendipity

1

Вы должны пересмотреть создать свой собственный формат файла с вашими собственными разделителей и т.д ...

Вы можете написать массив и из файла с помощью:

- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag 
- (id)initWithContentsOfFile:(NSString *)aPath  

При хранении пользовательских объектов , можно также реализовать NSCoding and NSKeyedArchiver

См Saving a NSArray

Наконец, вы можете использовать CoreData или Sqlite, если ваши данные и шаблоны запросов становятся более сложными.