2017-12-21 12 views
0

xcode(下)にコードを継承しましたが、'Unexpected '@' in program'エラーが報告されています。xcodeのiOSバージョンを検出 - プログラム内で予期しない '@'

私はこれが原因(ハードウェアの制限に)私のバージョンからのXcode 8.2.1

ありながら、オリジナルのコードをXcodeの> 9.0で書かれていたという事実のためである可能性が高いことを把握することができました研究、私は、問題は、このコードの一部であると判断している:私は

if #available(iOS 9.0, *) { 

に変更する必要が

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

しかし、私はそれを行う場合、私はその後、Fを取得エラー

Expected '(' after 'if' 

をollowingすると、コードのオリジナル作品は

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 
    } 
} 

にそれを変更しようとしたものです。

+2

を試すことができ、使用している1は、スウィフトのために客観的ではないためだことc。この回答を確認してください:https://stackoverflow.com/questions/3339722/how-to-check-ios-version/44429397#44429397 – Pochi

+2

[iOSバージョンの確認方法]の複製がありますか(https://stackoverflow.com)/questions/3339722/how-to-check-ios-version) – Pochi

+0

@ポチ返信ありがとうございます。 – omega1

答えて

2

利用可能(iOSの9.0、*)は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 
+0

ありがとう、それは私が完全に理解していなかった迅速な/客観的なcの違いでした。ありがとう。 – omega1

関連する問題