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 の間の接続を確立できるのでしょうか? (そのため、私は関連付けはどのように行われるのでしょうか???)
それで、それだけです。以前と同じように愚かです。
編集:他の回答も同様に有効であるという事実には同意しません。私はそれらが何を意味するかを理解していますが、これまでのところ、私が説明するケースに対して所有者パラメーターが何を保持すべきか、そして最も重要なのはその理由をまだ理解していません。