2013-02-28 32 views

答えて

3

オブジェクトは、実際にペン先に埋め込まれているものです。

外部オブジェクトは、読み込み時に提供するコードをロードするコードです(キーを外部オブジェクトにマップするディクショナリを使用していると思います)。

ほとんどの人は、ファイルの所有者(既にあなたのために提供されている)以外の外部オブジェクトを使用することはありません。あなたはほとんどの場合、オブジェクトがほしいと思うだけです。

+0

私は、各使用するときは、例を提供していただけますか? (ちょっとしたアイデアではない)。ありがとう。 – RCB

+1

@RCB:ペン先のほとんどは何らかのオブジェクトです。 IBがあなたのペン先に知らないクラスのオブジェクトを埋め込む場合は、リテラルObjectを使用します。これは、新しいObjectのClass値を編集することで行います。オブジェクトを直接使用することはあまり一般的ではありません。外部オブジェクトに関しては、おそらくこれを行う必要はありません。 –

6

他の回答に追加: 「外部オブジェクト」を使用して、複数のxibの共通オブジェクトにアクセスできます。他の方法でもこれを行うことができますが、これは便利です。

たとえば、複数のxibのボタンクリックに対して「大きな」アクションが実行されていて、そのようなアクションが多数ある場合(さらに、このアクションを実行している同じデータの場合) addTarget:action...を呼び出すと、このクラスのプロキシオブジェクトを作成してボタンにワイヤリングすることができます。

次のコードを使用して、あなたのXIBにプロキシオブジェクトを接続することができます。

id *proxy = <someObject>; //The object you want to wire up 
//In the below line of code use the same key as the identifier you give for the proxy object in the Interface Builder 
UINib *nib = [UINib nibWithNibName:@"ViewController" bundle:Nil]; 
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:proxyObject,@"proxy", nil]; 
NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:dict,UINibExternalObjects, nil]; 
NSArray *nibArray = [nib instantiateWithOwner:self options:dict2]; 
self.view = [nibArray objectAtIndex:0]; 
関連する問題