从Java / Android移至iOS / Objective-C之后,我正在经历一些混乱的阶段,无法理解或找到以下可行的解释:


什么是IBOutlet?
它有什么用?
是否必须在每个实现文件中定义IBoutlet代码,还是
头文件?


有什么与Java中类似的东西吗?

最佳答案

以您在Android方面的经验为基础,我确定您已经使用资源文件来引用子视图,例如项目中某个.xml视图的按钮或图像视图。

例如:

ImageView imageView = (ImageView) findViewById(R.id.myimageview);


虽然此属性将自动链接到Android中的资源文件,但不会对您的iOS项目执行此操作。相反,您可以通过创建新的IBOutlet属性并将子视图直接链接到专用.h文件,并通过Interface Builder将其链接。

IBAction也是如此。虽然您可以直接引用按钮并通过添加一个onClick侦听器

Button button = (Button) findViewById(R.id.mybutton);
button.setOnClickListener(this);


以在“ this”的onClick方法中接收操作,这在您的iOS项目中是不同的。同样,您将将由按钮触发的操作直接链接到专用的.h文件,并使用IBAction标记来自XIB文件的操作(请参见alex的回答)。
如Mark Adams所述,IBOutlet和IBAction只是一个无效的typedef,将仅由编译器使用。

关于objective-c - IBOutlet困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8955252/

10-13 04:28