4

nib/xib ファイルを ojbective C コードに変換する方法はあるのでしょうか? nib/xib ファイルに相当するコードを見つけたいだけです (nib2objc を試してみましたが、結果は私が求めているものではないようです)。

実際にこの例をコンパイルしたい

http://developer.apple.com/iphone/library/samplecode/TableSearch/index.html

nib/xib ファイルがない場合 (オリジナルとまったく同じにしたい)、これを行う方法はありますか?

4

4 に答える 4

14

nib2objcをチェックしてください:

nib2objc は、NIB ファイル (または XIB ファイル) を Objective-C コードに変換します。これには、各インスタンスのすべてのプロパティ、文書化されたコンストラクター呼び出し、およびビュー階層も含まれます。

nib2objc yourfile.xib > code.m
于 2009-12-25T05:39:59.570 に答える
7

一般的な場合、答えはノーだと思います。Nib はコードではありません。それらはシリアル化されたオブジェクトのアーカイブです。あなたが求めているのは、「任意のシリアル化されたオブジェクトのグラフが与えられた場合、シリアル化を使用せずにそのようなグラフを作成できるソース コードを生成できますか?」ということです。関連するすべてのクラスでそのようなプロセスに対する特別なサポートがなければ、どのようにできるかわかりません.

それが何であれ、この特定の方法ではなく、実際に達成する必要があることについて尋ねる方がおそらく有益でしょう.

于 2009-12-25T06:59:01.540 に答える
1

ここですべての「nib/xib を使用しない理由はない」タイプの回答に対して、対比として具体的な例を示しましょう。

【iPhone OS 3.1.3、3.2】

  1. iPhone OS アプリは、動作するメモリの量が限られています。使いすぎると、アプリは OS によって自動的に終了されます。
  2. インターフェイス ビルダーは、[UIImage imageNamed...] を使用して nib/xib で参照されているイメージをキャッシュに読み込みます。これは、メモリを使い果たし、そのメモリを自動的に解放しません。また、その共有キャッシュ内のイメージの解放を要求する方法もありません。
  3. 複数のnib/xibファイルを含むアプリで、nib/xibファイル(つまり、背景)にいくつかの大きな画像をレイアウトすると、メモリをすばやく消費するアプリがすぐにできます(iPadではフルサイズのpng背景ごとに3mbs)。リリースを制御できないこと。これについて疑問がある場合は、[UIImage imageNamed] のドキュメントを確認し、それが使用されていることを確認するためにグーグルで検索してください。

これは、xib/nib を使用しない場合です。

于 2010-05-28T16:29:18.100 に答える
0

Interface Builder では簡単または不可能な方法でプログラムによって作成されたビューの開始点を作成したいだけの場合、これを行うことは理にかなっていると思います。ビュー階層を静的ライブラリにバンドルして、完全に自己完結型にする場合にも便利です。理想的には、可能であればニブを使用したいと考えています。これにより、国際化が容易になります。ただし、文字列ファイルを使用して国際化をサポートすることはできます。

于 2013-06-17T15:04:08.450 に答える