gpt4 book ai didi

objective-c - IBOutlet 类似于 Objective-C 运行时中的构造

转载 作者:行者123 更新时间:2023-12-02 09:01:07 25 4
gpt4 key购买 nike

我对 IBOutlets 的理解是它们充当 Objective-C 类中的 ivars 和属性的标记。在 Objective-C 运行时中是否有任何允许查询在运行时是否使用 IBOutlet 标记了 ivar 或属性或类的东西?还是 XCode 只是在编译时对它们做了一些巧妙的处理?

如果它们是运行时构造,是否可以定义自己的标记并以这种方式使用它们:

@private
MyMarker MyClass instance;

最佳答案

据我了解,Interface Builder 只是读取头文件。 IBOutlet 和 IBAction 是微不足道的#defines:

#define IBOutlet
#define IBAction void

完全不影响编译。 Interface Builder 直接读取您的头文件(头文件更改时为 notified by Xcode,但它只是读取并解析头文件本身。

当 nib 文件被归档时,值是通过普通界面使用 ivar 或属性设置的,但没有什么特别的注意到 ivar/property 可由 Interface Builder 使用。

所以不,IBOutlet/IBAction 属性的存在不会被存储并且无法访问,您也不能添加自己的属性。

您可以查看属性,看看是否有任何有用的东西可以附加到具有属性的 ivar,但我会感到非常惊讶。

关于objective-c - IBOutlet 类似于 Objective-C 运行时中的构造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1198369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com