代码之家  ›  专栏  ›  技术社区  ›  teabot

在XIB文件中创建非视图对象的指南

  •  1
  • teabot  · 技术社区  · 17 年前

    Interface Builder提供了在XIB文件中创建非视图/控制器对象的能力。过去,我曾使用此功能实例化和连接管理XIB中视图组件的小组件,这似乎是一件相当合理的事情。

    然而,我想知道还有什么 合法的

    dependency injection

    2 回复  |  直到 17 年前
        1
  •  2
  •   Kendall Helmstetter Gelner    17 年前

    我使用的经验法则是,如果辅助对象以某种方式与nib中定义的UI相关,则可以放入它们——因此,可以是包含元素引用的代理对象,也可以是触发的操作。

    加载nib时,代理方法都会连接进来,并通过userinfo字典传入已创建的对象,您可以选择将其与nib名称一起传入。

    不过,我认为,在一个纯粹的逻辑笔尖中,使用目标/动作系统来连接多个代理对象,这根本没有错。这可能比在代码中完成所有接线更容易,尽管我还没有看到在实践中使用过。

        2
  •  1
  •   Community Mohan Dere    9 年前

    没有指导方针,你只能靠自己。

    在teabot评论后编辑 :看,在我看来,目前还不清楚笔尖内存管理是如何工作的。当我释放一个拥有笔尖的窗口控制器时,反序列化的对象真的会离开内存吗?

    我想我在某个地方读到,如果你在笔尖控件和窗口控制器之间使用绑定,你会遇到泄漏,在某些情况下,我也会遇到这种情况 funny nib-related annoyances 我自己。

    由于绑定键错误或缺少动作IB链接,很难追踪到一些与笔尖相关的错误。

    因此,我更喜欢将笔尖内容保持在最低限度,通常是充分利用绑定所需的所有东西(通常是数组控制器),但仅此而已。

    [我有个主意 new question ]