2013-04-08 5 views
1

У меня есть следующий бит кода. path - это путь к файлу в моем пакете.Получение Error Domain = NSCocoaErrorDomain Code = 261 с простейшим случаем

_dictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:path]; 
    NSError *error; 
    NSString *string = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error]; 

То, что я не понимаю, переменная _dictionary выглядит отлично. Он смог получить содержимое и преобразовать его в словарь. Тем не менее, простой случай преобразования файла в строку дает мне ошибку:

$2 = 0x12eb3d50 Error Domain=NSCocoaErrorDomain Code=261 "The operation couldn’t be completed. (Cocoa error 261.)" UserInfo=0x12eb3550 {NSFilePath=/Users/ben/Library/Application Support/iPhone Simulator/6.1/Applications/82CBC7A6-2C4C-4330-9B29-7940C961B5B7/FMA.app/Licenses.plist, NSStringEncoding=4} 

Как я могу прочитать файл PLIST как простая строка XML? Я проверил кодировку, и файл кодируется в кодировке UTF-8 (как указано в заголовках содержимого XML). Если я изменил кодировку на что-то еще, я не получу ошибку, но строка искажена! Есть идеи?

ответ

1

Если Xcode копирует файл plist в ваш комплект приложений, вы должны убедиться, что он скопирован как XML-файл, а не как двоичный файл (который теперь является настройкой по умолчанию).

В Xcode перейдите в свой проект, выберите цель, перейдите к настройкам сборки, найдите «свойство», измените раскрывающийся параметр «Кодирование вывода списка свойств» в XML.

+0

создал его в Xcode – Gujamin

+0

Я попытался usedEncoding и получил следующее сообщение об ошибке и кодирование:. '(NSStringEncoding) $ 3 = 13635557' и' $ 4 = 0x09277b00 Ошибка домена = NSCocoaErrorDomain Code = 264 «Операция не может быть завершена (Cocoa ошибка 264.) «UserInfo = 0x92772d0 {NSFilePath =/Users/ben/Library/Application Support/iPhone Simulator/6.1/Applications/82CBC7A6-2C4C-4330-9B29-7940C961B5B7/FMA.app/Licenses.plist}' – Gujamin

+0

В этом case, попробуйте NSPropertyListSerialization: '+ (id) propertyListWithData: (NSData *) параметры данных: (NSPropertyListReadOptions) формат выбора: (NSPropertyListFormat *) ошибка формата: (NSError **) error' --- является ли plist фактически в двоичном формате? – Wain

Смежные вопросы