Xcode 警告:“可能无法响应”

Posted

技术标签:

【中文标题】Xcode 警告:“可能无法响应”【英文标题】:Xcode warning: "May not respond to" 【发布时间】:2010-08-08 05:08:57 【问题描述】:

我有一些方法可以在我的类实现中初始化不同的东西。但是,当我使用 [self 'methodName'] 调用这些方法时,Xcode 编译器会给出我无法摆脱的警告。

'className' 可能不会响应 'methodName'

例如,

警告:'NextJackpotViewController' 可能不会响应 -initActivityIndi​​cator'

- (void)viewDidLoad 
    [self initActivityIndicator];
    [self addRefreshButton];
    [self updateUI];

    [super viewDidLoad];

有什么办法可以摆脱这种情况?

【问题讨论】:

【参考方案1】:

有 3 种方法可以做到这一点。第一个是像马特说的那样把方法声明放在你的头文件中。

第二种是通过创建私有方法,您可以通过将以下代码放在控制器顶部来做到这一点

@interface NextJackportViewController (PrivateMethods)
- (void)initActivityIndi​​cator;
@end

第三种方法是在调用之前定义方法。

【讨论】:

请注意PrivateMethods这个词不是关键字或任何特殊的东西,你可以很容易地用OtherStuff替换它(不是说你应该)【参考方案2】:

确保方法在您的头文件中定义。在这种情况下:

// NextJackpotViewController.h 
- (void)initActivityIndicator;

【讨论】:

或者您可以确保它是在同一文件中调用它的方法之前定义的(在您的 .m 文件中较高)。

以上是关于Xcode 警告:“可能无法响应”的主要内容,如果未能解决你的问题,请参考以下文章

如何停止 UIView 的警告可能无法响应选择器

在方法中以编程方式移动控件警告“未找到方法”和“控件可能无法响应”

NSDictionary 可能无法响应 NSMutableDictionary 对象上的 setObject:forKey

iphone sdk 中的警告

iPhone - 无法识别的选择器,“可能无法响应 addTarget”

应用程序崩溃说集合表达式类型 UIView*' 可能无法响应 'countByEnumeratingWithState:object:count"'