从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/