【问题标题】:iOS 9 Undeclared selectoriOS 9 未声明的选择器
【发布时间】:2015-10-17 17:24:25
【问题描述】:

为什么更新到 iOS 9 后这行代码不起作用?

警告是未声明的选择器'performThisMethod:_ImageData

应用在 [self performSelector:] 上崩溃

[self performSelector:@selector(performThisMethod:_ImageData:)withObject:nil afterDelay:0.05f];

-(void) performThisMethod : (NSData *) data {
     NSLog(@"Testing this Method");

  }

Apple 改变了什么?

【问题讨论】:

  • Apple 没有改变任何东西,该代码可能永远无法编译

标签: ios uiimagepickercontroller performselector


【解决方案1】:

您错误地使用了performSelector。你想要:

[self performSelector:@selector(performThisMethod:) withObject:_ImageData afterDelay:0.05f];

更好的是,使用dispatch_after

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.05 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
    [self performThisMethod:_ImageData];
});

【讨论】:

  • 很高兴我能帮上忙。请不要忘记接受解决您问题的答案。这表明问题已完成,并且可以提高您的声誉。
【解决方案2】:

你的代码应该是

[self performSelector:@selector(performThisMethod:) withObject:_ImageData afterDelay:0.05f];

查看this question answers 以更好地了解performSelector 的行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 2016-02-25
    • 2017-10-25
    相关资源
    最近更新 更多