在xcode中检测iOS版本 - 意外' @'在程序中

时间:2017-12-21 08:08:34

标签: ios xcode8

我在xcode(下面)中继承了一些代码,并且报告了'Unexpected '@' in program'错误。

我已经弄清楚这可能是因为原始代码是用xcode> 9.0编写的,而我的版本(由于硬件限制)是xcode 8.2.1

从研究开始,我已经确定问题出在这部分代码中:

 if (@available(iOS 9.0, *)) {

我需要改为

if #available(iOS 9.0, *) {

但如果我这样做,那么我会收到以下错误

Expected '(' after 'if'

原始代码是

if ([self.uploadProgress respondsToSelector:@selector(setResumingHandler:)]) {
    if (@available(iOS 9.0, *)) {
        [self.uploadProgress setResumingHandler:^{
            __typeof__(weakTask) strongTask = weakTask;
            [strongTask resume];
        }];
    } else {
        // Fallback on earlier versions
    }
}

这就是我试图将其改为

if ([self.uploadProgress respondsToSelector:@selector(setResumingHandler:)]) {
    if #available(iOS 9.0, *) {
        [self.uploadProgress setResumingHandler:^{
            __typeof__(weakTask) strongTask = weakTask;
            [strongTask resume];
        }];
    } else {
        // Fallback on earlier versions
    }
}

任何帮助将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:2)

可用(iOS 9.0,*)在swift中用于objective-c你可以尝试这个

 if (floor(NSFoundationVersionNumber) >= NSFoundationVersionNumber_iOS_9_x_Max)

OR

#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >=  __IPHONE_10_0
    // For iOS 10 display notification (sent via APNS)

    #endif