首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我绑定到的对象的作用是什么?

我绑定到的对象的作用是什么?
EN

Stack Overflow用户
提问于 2009-02-27 19:21:52
回答 2查看 145关注 0票数 0

当我使用Interface Builder > Inspector > Bindings为我的一个视图项(即文本字段)设置绑定时,我必须指定该视图项将绑定到的对象。

所以我现在想知道,我在“绑定到:”中指定的这个对象的作用到底是什么?我假设Interface Builder会自动创建一些方法来完成所有的同步工作。是那么回事吗?

当我“绑定到:文件的所有者”是什么意思?那是我里面有main-Method的文件吗?

EN

回答 2

Stack Overflow用户

发布于 2009-02-27 20:08:20

…我在“绑定到:”中指定的这个对象的作用到底是什么?

将视图绑定到控制器。控制器拥有模型;绑定到的控制器键是提供该模型的某个部分的属性的名称。模型对象有自己的属性,您可以(在某些情况下必须)提供模型密钥路径和控制器密钥。

我假设接口生成器会自动创建一些方法来完成所有的同步工作。是那么回事吗?

不是的。IB从不创建方法。绑定系统完成了所有的同步工作,而且它已经存在了。IB只是调用它(具体地说,它调用我在my answer to your other question中提到的bind::::方法)。

当我“绑定到:文件的所有者”时,

是什么意思?

文件的所有者是拥有nib文件中所有顶级对象的对象。应用程序对象(NSApp)是MainMenu nib的所有者。在基于文档的应用程序中,document对象将加载包含文档窗口的nib;因此,它是该窗口的所有者,以及该nib中的任何其他顶级对象。

那是我的里面有main-Method的文件吗?

没有这样的文件,因为没有这样的方法。有一个main函数,但它是一个函数,而不是一个对象的方法。那里没有对象,所以你不能绑定到它。

你不能绑定到一个文件,只能绑定到一个对象。当您将程序链接到单个可执行文件中时,源文件就消失了。可执行文件只包含类和函数,而nib包含对象(类的实例)。

如果你想问哪个文件是被拥有的,那就是nib文件(或者,更准确地说,是它的内容--但是“file‘s Contents’Owner”有点长)。

*除调试符号外,调试符号标识每条指令的文件名和行号。

票数 2
EN

Stack Overflow用户

发布于 2009-02-27 19:45:44

绑定到的对象必须与key value codingkey value observing兼容。Bindings只是一个包装器,它以一种更少的代码方式使用了这两种技术。

如果你真的想知道它是如何工作的,这里有an entry in Mike Ash's blog how KVO works.

我不知道你是否想要那么多细节。我建议您阅读intro to bindings of cocoadevcentral.com。它在解释它们方面做得相当好。

对于您关于文件所有者的特定问题,Apple写道:

每个Cocoa应用程序都有一个主nib文件,其中包含特定于应用程序的菜单以及可能的一个或多个窗口。NSApp是主nib文件的文件所有者。当应用程序启动时,NSApp会加载主nib文件,将其解压,并显示菜单和初始窗口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/596226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档