在 xcode 中检测 iOS 版本 - 程序中出现意外的“@”
Detect iOS version in xcode - Unexpected '@' in program
我继承了 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
}
}
如有任何帮助,我们将不胜感激。
available(iOS 9.0, *) 在 swift 中用于 objective-c 你可以试试这个
if (floor(NSFoundationVersionNumber) >= NSFoundationVersionNumber_iOS_9_x_Max)
或
#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
// For iOS 10 display notification (sent via APNS)
#endif
我继承了 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
}
}
如有任何帮助,我们将不胜感激。
available(iOS 9.0, *) 在 swift 中用于 objective-c 你可以试试这个
if (floor(NSFoundationVersionNumber) >= NSFoundationVersionNumber_iOS_9_x_Max)
或
#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
// For iOS 10 display notification (sent via APNS)
#endif