【问题标题】:Object vs. External Object in XCode Interface BuilderXCode Interface Builder 中的对象与外部对象
【发布时间】:2013-02-15 02:53:18
【问题描述】:

IB中的对象和外部对象有什么区别?
我应该什么时候使用每个?

【问题讨论】:

    标签: ios xcode interface-builder


    【解决方案1】:

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

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

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

    【讨论】:

    • 你能举例说明我什么时候使用它们吗? (只是想法而不是代码)。谢谢。
    • @RCB:笔尖中的几乎所有东西都是某种对象。如果你想在你的 nib 中嵌入一个 IB 不知道的类的对象,你可以使用字面量 Object。您可以通过编辑新对象的类值来完成此操作。直接使用对象并不是很常见。至于外部对象,您可能永远不需要这样做。
    【解决方案2】:

    添加到另一个答案: 您可以使用“外部对象”跨多个 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];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-05
      • 1970-01-01
      • 2013-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多