2013-02-28 102 views

回答

3

一个对象是实际嵌入在笔尖中的东西。

一个外部对象是加载nib承诺在加载时提供的代码(我相信通过将键映射到外部对象的字典)。

除了文件所有者(已经为您提供)之外,大多数人从不使用任何外部对象。你几乎肯定只需要对象。

+0

时,我会用每能否请您提供例如:

您可以使用下面的代码连接代理对象的厦门国际银行? (只是想法不代码)。谢谢。 – RCB 2013-02-28 19:16:54

+1

@RCB:几乎所有的笔尖都是某种物体。如果要嵌入IB不知道的类的对象,则可以使用字面值对象。您可以通过编辑新对象的Class值来完成此操作。直接使用对象并不常见。至于外部对象,你可能不需要这样做。 – 2013-02-28 19:51:40

6

添加到其他答案: 您可以使用'外部对象'来访问跨多个xib的通用对象。你也可以用其他方式做到这一点,但这会很方便。

举个例子,如果你有一个'大'行动来执行多个xib的按钮点击,并且如果你有很多这样的动作(另外如果它是你执行这个动作的相同数据),而不是调用addTarget:action...,您可以创建该类的代理对象并将其连接到按钮。

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];