【问题标题】:+load method not getting invoked in iOS?+load 方法没有在 iOS 中被调用?
【发布时间】:2014-10-01 21:29:50
【问题描述】:

我知道 +(void)load 方法在 ios 中甚至在 main 函数之前就被调用了。 在我的情况下,它只被 UIView 调用,而不是 UITextView。

  • 是否有需要导入的文件?
  • load 方法是否只对某些类有效。 请提供有关在 ios 中调用 +(void)load 方法所需条件的必要输入。

在这里被调用:

@implementation UIView (SomeMethodSwizzling)
+(void)load{



}
@end

这里没有被更新。

@implementation UITextView (SomeMethodSwizzling)
+(void)load{

}
@end

【问题讨论】:

  • 小心覆盖类别中的方法。这是 Objective-C 中未定义的行为。
  • 不适用于+load。这是它实际定义的一个神奇案例。
  • @RobNapier 有趣的花絮。谢谢。
  • 当这是一个有效的问题时,为什么会被否决?

标签: ios objective-c


【解决方案1】:

通常的原因是您实际上并没有链接文件。最常见的原因是您没有直接使用其中声明的任何内容(有时您需要将-objc 传递给链接器以解决该问题)。另一个原因是您刚刚忘记将文件添加到目标(我看到这种情况经常发生)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 2014-06-02
    • 2011-08-28
    相关资源
    最近更新 更多