специальные символы в Objective-C plist - PullRequest
0 голосов
/ 07 июля 2010

Я не сталкивался с этим раньше, но хотел знать, возможно ли хранить КЛЮЧИ со специальными символами в Objective-C / Cocoa Touch

Так как можно вызвать разрыв строки в строке NSString с помощью \ n, я хотел сохранить некоторые значения в plist (и они действительно должны быть ключами). Это всего лишь около 20 строк статических данных (ну, ключи, значения - это NSNumbers, которые сохраняются в файл), для которых я не хочу использовать sqlite, так что это либо словарь, либо статический массив, который я могу сохранить диск.

Вот список .plist альтернативный текст http://www.davidhomes.net/plist.png

Так что, когда я пытаюсь установить значение для любой клавиши без специальных символов, все в порядке. Но попытка установить, скажем, 'Ширина ноги \ n или Высота' возвращает

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFDictionary setObject:forKey:]: attempt to insert nil key'

является аргументом a NSString = @ "Ширина ноги \ n или высота"

Любая помощь приветствуется

С наилучшими пожеланиями Дэвид

1 Ответ

1 голос
/ 07 июля 2010

Строка в редакторе списков - это строка без экранирования . Поэтому я часто предпочитаю хранить регулярные выражения в файле plist, используя редактор plist.

Таким образом, для записи Leg Width\n or Height необходимо использовать ключ

    [dict objectForKey:@"Leg Width\\n or Height"]

Обратите внимание, что вы вставили буквальный обратный слеш в запись plist.

...