証明書を取得しようと考えていたので、Codilityテスト(http://codility.com/ )を見てきましたが、いくつかの非常に奇妙な構文エラーに遭遇しました。少し使用しているようです。 iOSへのObjective-Cの異なるバージョン。
たとえば、完了する関数は次のように宣言されています。
int equi (NSMutableArray *A) { //.... }
とは対照的に
-(int)equi:(NSMutableArray *)A { //... }
for
そして私が次のループを宣言したとき(A
はの配列ですNSNumber
):
12. for (int i = 0; i < [A count]; i++){
13. total = total + [[A objectAtIndex:i] intValue];
14. }
次のコンパイルエラーが発生しました。
func.m:12: error: 'for' loop initial declarations are only allowed in C99 mode
func.m:12: note: use option -std=c99 or -std=gnu99 to compile your code
func.m:13: error: invalid operands to binary + (have 'double' and 'id')
誰かがこれに光を当てることができれば、おそらくObjective-cのバージョンまたはコンパイラのバージョンは異なりますか?
ありがとう
編集: Codilityの@Kosは以下にコメントしています。最近、Objective-CコンパイラをClangに切り替えました。これは、私が尋ねた質問のほとんどが問題ではなくなったことを意味します。