Я знаю, что файлы .xib на самом деле являются файлами .xml (о чем свидетельствует, прежде всего, тот факт, что я могу переименовать их расширение и открыть их в текстовом редакторе и коде дешифрирования), поэтому теоретически можно было бы открыть xib как xmlразобрать его в приложении.Я посмотрел в настройках сборки для моего примера приложения и обнаружил, что XIB не скомпилированы, а скорее являются ресурсами пакета копирования.Звучит хорошо, правда?Но файлы выдают мне (нулевые) строки, когда я пытаюсь получить их текст с помощью следующих методов:
NSString *string = [[NSBundle mainBundle]pathForResource:@"Empty" ofType:@"xib"];
NSString *xmlString = [[NSString stringWithContentsOfFile:string encoding:NSUTF8StringEncoding error:nil] retain];
NSLog(@"%@", xmlString);
[textView setText:xmlString];
Это NSLog (null) как для xmlString
, так и для string
.Итак, я подумал о том, чтобы попробовать его с другим ресурсом Copy Bundle Resource, поэтому я изменил string
на следующее:
NSString *string = [[NSBundle mainBundle]pathForResource:@"InfoPlist" ofType:@"strings"];
, и он записал идеальный путь к файлу!Тем не менее, xmlString все еще зарегистрирован (ноль).
Затем я попытался получить код ошибки, и я получил это:
The operation couldn’t be completed. (Cocoa error 258.)
Это заставляет меня думать, что за этим происходит некоторая дополнительная компиляциясцены с файлами .xib (я где-то читал, что они превращаются компилятором в перья), что делает их нечитаемыми или недоступными.Но есть известные мне приложения ( Интерфейс является ярким примером), которые могут читать и записывать файлы .xib.
Итак, кто-нибудь может помочь мне получить xml из .xibфайл