#ios #objective-c #xcode #nsdata #nib
#iOS #objective-c #xcode #NSData #перо
Вопрос:
У меня возникли проблемы с загрузкой файла Nib, созданного:
ibtool MyNib.xib --compile MyNib.nib
Я попытался использовать полный путь для всего. Я пробовал —output-format для чтения человеком-текст и двоичный файл1.
Это код:
NSString* path = [[NSBundle mainBundle] pathForResource:@"MyView" ofType:@"nib"];
NSFileManager* fs = [[NSFileManager alloc] init];
BOOL isDir;
// Debugger shows this to be true
BOOL exists = [fs fileExistsAtPath:path isDirectory:amp;isDir];
NSError* error;
NSData* data = [NSData dataWithContentsOfFile: path
options: nil
error: amp;error];
Я проверяю, существует ли файл, что он и делает. Но не удается создать NSData. Ошибка содержит эту информацию:
«Не удалось завершить операцию. (Ошибка Cocoa 257.) » userInfo= 0x7c6d9c0 {NSFilePath=/Users/onbek/Library/ Поддержка приложений / Симулятор iPhone / 6.1 / Приложения/FE56BA5C-9333-4E7B-A13C-137E0357519B/MyApp.app/MyView.nib, NSUnderlyingError= 0x7c70ad0 «Не удалось завершить операцию. Отказано в разрешении»}
Это разрешения для файла:
drwxr-xr-x 4 onbek staff 136 26 Jun 19:56 MyView.nib
И его содержимое:
-rw-r--r-- 1 onbek staff 5275 26 Jun 19:56 objects.nib
-rw-r--r-- 1 onbek staff 5983 26 Jun 19:56 runtime.nib
Я искал и не смог найти, почему я не могу создать объект NSData. Моя первоначальная информация, которую я использовал, чтобы выяснить это, была на http://www.indelible.org/ink/nib-loading / Загрузка необработанных данных наконечника.
Я пробовал много вещей, все из которых я пробовал после выполнения чистой сборки:
Игра с разрешениями. Я попытался заглянуть в папку derived data для своего проекта, скопировав созданный Xcode файл nib, скопировав его и посмотрев, смогу ли я получить его для создания объекта NSData. Этого не произошло. Удаление производных данных и сброс настроек симулятора до тошноты. Молитва.
Моя цель — иметь возможность загружать перо из произвольного местоположения (то есть загруженного).
Комментарии:
1. Может быть проблема с песочницей. Вы пробовали использовать методы, основанные на URL (т. Е.
-[NSBundle URLForResource:withExtension:]
И-[NSData dataWithContentsOfURL:options:error:]
), вместо методов, основанных на пути?