我在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
}
}
任何帮助将不胜感激,谢谢。
答案 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