は、私の質問は:あなたがコンパイルx86_64版を使用する理由場合にのみ、このコンパイルエラーが発生しますか?そして、どのように解決するには?
私の質問は:選択x86_64版シミュレータ、コンパイルエラーが発生する理由場合にのみなぜ選択x86_64版シミュレータ「はブロック内の配列型で宣言を参照できない」だけComplieエラー
環境解決する方法:??のXcode v8.3.2
テストコード:コンパイルする
+ (BOOL)updateSqlByFileName:(NSString *)file key:(NSString *)key, ...
{
va_list args;
va_start(args, key);
__block BOOL isOK = NO;
[_queue inDatabase:^(FMDatabase *_dataBase)//
{
isOK = [_dataBase executeUpdate:sql withVAList:args];
}];
va_end(args);
return isOK;
}
異なる方法、コンパイル時にエラーが場合
]√[コンパイラ通常汎用IOSデバイスコンパイラ(ビルド):: [たARMv7 + arm64}
0を選択] [√通常のコンパイラ選択実機:iPhone 4(7.1.2)コンパイル(ビルド):[
]のARMv7CompileC Test.m normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler
]×[エラー選択シミュレータをコンパイル:iPhoneの5S (10.3)、iPhone SE(10.3)、iPhone 7プラス(10.3)コンパイラ(ビルド):[x86_64版]
CompileC Test.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
Complieエラー:
は、ブロック内の配列型と宣言を参照できません[コンパイル正常√]シミュレータを選択:iPhone 5(10.3)コンパイル(ビルド):[I386]を
CompileC Test.m normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler
CompileC Test.m normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler
CompileC Test.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler