問題タブ [loadnibnamed]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
101 参照

iphone - 奇妙な xib ファイルから nib への変換の問題

Xcode 4.5.2 に新しいビュー コントローラーを追加しようとしていたのですが、xib ファイルを 5.1 と互換性があるように作成し、いじり始めたところ、このカスタム テーブル ビュー セルがまったく読み込まれていないことに突然気付きました。ロード時にクラッシュを作成します。

[self.cellNib instanceiateWithOwner:self オプション:nil];

作成される .app ファイルのチェックを開始しました。この新しいカスタム テーブル ビュー セル nib ファイルを除いて、他のすべての xib は「nib」拡張子になっていることがわかります。このxibファイルを他のものと同じようにnibに変換できる設定は何ですか?

0 投票する
1 に答える
3478 参照

ios - パフォーマンスの違い: loadNibNamed とプログラムによる

多くのカスタムUIViewを含むviewcontrollerがあります。InterfaceBuilder (IB) を使用して定義しようとしたカスタム UIView を、次のコードを使用して initWithFrame 内にロードします。

ビュー コントローラーの動作が非常に遅いため、カスタム uiview の項目をプログラムでロードすることにしました。出来上がり、速度は約 7 倍になりました。

XIB ファイルのロードと「クリーンな」コードの使用の違いがこれほど大きいのはなぜですか? 私が考えることができた最初の仮説は、IB はデフォルトで多くのプロパティを設定しているのに対し、コードで定義するときは単純に nil であるというものでした。しかし、それだけではパフォーマンスの大きな違いを説明できません! パフォーマンス上の理由から IB を使用しないように明示的に警告する投稿は見つかりませんでした。

編集:私はこのリンクを見つけたので、ディスクからxibファイルがロードされる時期について興味深いことを説明するこのブログ投稿を見つけました。ディスクからの読み込みが違いを説明していると思います。/K

0 投票する
0 に答える
172 参照

ios - 誰かがiOSのファイル所有者を説明できますか

iOS が登場してから長い間議論されてきましたが、この質問について事前にお詫び申し上げます。しかし、最善を尽くしても、まだ理解できません。私が想像できる最も近いイメージは、「凍結して乾燥させたオブジェクト グラフ」です。

では、何をするかを理解するまで実際には何も説明できないことを考慮して、次の例を見てみましょう。

1) UIView などの Xib ファイルと、ラベルと imageView があります。

2) IB の ID インスペクターで Xib にアタッチされた、UIView のサブクラスである classX があります。IB アウトレットと IB アクションは、接続インスペクターでこのクラスに接続されます。このクラスは、IB/IA をプロパティとして宣言します。

3) classVC で表される UIViewController があります。このクラスでは、1) 標準を使用してインスタンス化します[[NSBundle mainBundle] loadNibNamed:@"bla" owner:??? options:nil][0];

4) classX と classVC は、カスタム デリゲート、標準的なものを介して通信します。

質問:

a)XIB ファイルの所有者は何ですか。正直なところ、わかりません。

b) owner パラメータには何を入力すればよい[[NSBundle mainBundle] loadNibNamed:@"bla" owner:??? options:nil][0];ですか? また、最も重要なのはなぜですか?

オブジェクト グラフが凍結解除され、水が供給されている場合、ランタイムはアウトレットが 2) で定義した接続を行うべきではないので、この場合のファイルの所有者のポイントは何ですか?

また

XIB ファイル アウトレットが何にも接続されていない場合、「ファイルの所有者」とは、「私は必要なすべての OUtlets を含むクラスであるため、そのクラス インスタンスと圧縮解除された XIB の間の接続を確立できるのでしょうか? (そのため、私は関連付けはどのように行われるのでしょうか???)

それで、それだけです。以前と同じように愚かです。

編集:他の回答も同様に有効であるという事実には同意しません。私はそれらが何を意味するかを理解していますが、これまでのところ、私が説明するケースに対して所有者パラメーターが何を保持すべきか、そして最も重要なのはその理由をまだ理解していません。

0 投票する
1 に答える
1134 参照

xcode - カスタムセルロードNIbはiOS6で動作しますが、iOS5でクラッシュしました

iOS 6シミュレーターで完全に動作しますが、iOS 5シミュレーターでクラッシュし、次のエラーが発生します:'NSInternalInconsistencyException'、理由:'NIBデータが無効です。

アップルは何かを変えましたか?

0 投票する
2 に答える
895 参照

ios - iOS 5.1 シミュレーターでは、UITableView dataSource が tableView:cellForRowAtIndexPath: からセルを返す必要があるため、アプリがクラッシュします。

iOS 6 シミュレーターで問題なく動作します。iOS 5.1 シミュレーターで初めて実行すると、次の例外が原因でクラッシュします。

*キャッチされない例外 'NSInternalInconsistencyException' が原因でアプリを終了します。理由: 'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:'

これが私のコードです

そして、listTableCell.xib で、ファイルの所有者をテーブル ビュー コントローラーとして設定しました。そして、テーブルビューコントローラーで nibLoadCellForListDetails としてアウトレットを正しく作成しました。

0 投票する
3 に答える
2285 参照

ios - topLevelObjects の loadNibNamed リーク

カスタムセルを使用していて、loadNibNamed:. これによりメモリリークが発生しているようで、解決方法がわかりません。トップレベルのオブジェクトをnil後で設定すると、まだリークが発生します。

それから私はこれをします

次に、セルのプロパティを変更します。

カスタム セルにはプロパティへの強い参照があります。これは循環参照ではないため、これが問題かどうかはわかりません。ARC を使用しているときにこの放棄されたメモリを停止する正しい方法は何ですか?

0 投票する
1 に答える
123 参照

ios - UIView を既に持っているサブビューを追加するにはどうすればよいですか?

以下を使用して、ビューを作成し、そこに nib をロードできます。

ここに問題があります。xib ファイルに が既に含まれているUIView場合、XCode は「lldb」のみをログに記録UIViewしますが、xib ファイルで を削除して他のオブジェクトを追加すると、完全に正常に表示されます。

しかし、私はそのUIView中のすべてのものを全体にロードしたいので、ペン先にUIView.

ご協力いただきありがとうございます。

0 投票する
2 に答える
2590 参照

ios - loadNibNamed を使用する iOS SDK、「init」内のコードが期待どおりに機能しない

を含む nib ファイルがありUIViewます。そして、「 . 」UIViewという名前のサブクラスがあります。関数 ' 'を使用して、FluidInfoこれUiViewをポップアップとして表示します。viewControllercreateFormulaPopup

UIViewのサブクラスを作成しましたFluidInfo。アウトレットとアクションを作成すると、それらはすべて正しく機能します。

問題は、私のinit関数UIViewが予期せず機能していることです。何かをログに記録すると、ポップアップと同時に表示されます..しかし、ビューの背景色のようなものを設定すると、消えてしまうようです。インターフェイスビルダーで設定すると、固執します。色の変更をアクションに追加するUIViewと、それも機能します。しかし、ビューが初期化されると、プログラムで行ったすべてのことを元に戻すようです。