琐碎的“+ [NSTimer scheduledTimerWithTimeInterval:重复:阻止:]:无法识别的选择器”错误

时间:2016-11-10 07:10:44

标签: cocoa nstimer

在转移到10.12 / Sierra和Xcode 8.1之后,我正在反对一个奇怪的错误:

+[NSTimer scheduledTimerWithTimeInterval:repeats:block:]: 
     unrecognized selector sent to class 0x7fff78f1fa88

重现这一点的最小代码(创建新项目的默认设置)是:

//  AppDelegate.m
//

#import "AppDelegate.h"

@interface AppDelegate ()

@property (weak) IBOutlet NSWindow *window;
@property (strong, nonatomic) NSTimer * timer;
@end

@implementation AppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    self.timer = [NSTimer scheduledTimerWithTimeInterval:10 
                           repeats:YES 
                             block:^(NSTimer * _Nonnull timer) 
   {
        NSLog(@"Ping from %@", timer);
    }];
}

链接包括(核心)基础类和'all_load'。必须是完全无足轻重的东西 - 但不能成为现实。

任何和所有帮助表示赞赏。

谢谢,

DW传递。

1 个答案:

答案 0 :(得分:31)

+ [NSTimer scheduledTimerWithTimeInterval:重复:block:]是iOS 10.0+方法。您是否可能尝试在iOS 9.x上运行它?

https://developer.apple.com/reference/foundation/nstimer/2091889-scheduledtimerwithtimeinterval?language=objc