2012-02-20 3 views
0

.xibファイルは本当に.xmlファイルであることがわかっています(拡張子の名前を変更してテキスト編集とダッシュコードで開くことが主な原因です)、理論的にはxibとしてxibを開き、アプリケーションでそれを解析することができます。サンプルアプリケーションのビルド設定を見て、xibがコンパイルされていないことを確認しました。むしろコピーバンドルリソースです。いいよね?.xibファイルのXMLテキストの取得

NSString *string = [[NSBundle mainBundle]pathForResource:@"Empty" ofType:@"xib"]; 
    NSString *xmlString = [[NSString stringWithContentsOfFile:string encoding:NSUTF8StringEncoding error:nil] retain]; 
    NSLog(@"%@", xmlString); 
    [textView setText:xmlString]; 

それのNSLogの(ヌル)xmlStringためとstringの両方:私がしようとすると、これらの方法で自分のテキストを取得する場合でも、ファイルは私に(ヌル)文字列を与えています。だから私は、別のコピーバンドルのリソースでそれをしようと思ったので、私はこれにstringを変更:

NSString *string = [[NSBundle mainBundle]pathForResource:@"InfoPlist" ofType:@"strings"]; 

、それは完璧なファイルパスをログに記録しました!ただし、xmlStringはまだログに記録されています(null)。

その後、私は、エラーコードを取得しようとした、と私はこれを得た:

それは私が、私は、彼らがあることをどこかで読ん(.xibファイルとの舞台裏で起こっていくつかの余分なコンパイルがあると思います
The operation couldn’t be completed. (Cocoa error 258.) 

コンパイラによってペン先に変わってしまいます)、読めなくなったり、到達不能になったりします。しかし、.xibファイルを読み書きすることができるアプリがあります(Interfaceが主な例です)。

だから誰でもxmlの.xibファイルを手に入れることができますか?

+0

インターフェイスはxibファイルを読み書きしますか? – sch

+0

自分のサイトで宣伝された機能です。 – CodaFi

+0

まあ、私は本当に質問をするべきではありません:)彼らは、xmlであるxibファイルを操作する場合でも。 – sch

答えて

0

実際にはxibファイルはnibファイルにコンパイルされます。コンパイルされた.appにShow Package Contentsを使用すると、代わりにxibファイルはなくnibファイルがあることがわかります。

編集nibファイル形式は、独自の形式であるようです。しかし、私は確信していません。

フォームアップルdocumentation

元の形式は、拡張子.nibでファイルを使用しています。これは、Interface Builderのユーザーインターフェイスオブジェクトと接続の表現のための独自のバイナリ形式です。

編集2のnibファイルにXIBファイルをコンパイルからXcodeのを防ぐために、いくつかのoptionがあるように見えます。しかし、私はそれをどうやって行うのかまだ分かりませんし、実際の結果は何ですか?

編集3私はXcodeでそれを試みました。私がFlatten Complied XibファイルをNoにすると、まだバイナリにnibファイルがありますが、今回は圧縮されていません。これらのnibファイルの中には、xml形式のdesigntime.nibというファイルがあります。

+0

OK、ココアのエラー261があります。ペン先はどのようなエンコーディングですか? – CodaFi

+0

@CodaFi - あなたはアプリをコンパイルし、nibファイルをxml形式に保つことができます:私の編集された答えを見てください。 – sch