2011-12-04 4 views
0

私は、Cとobjective-Cの違いを理解するためにC言語を翻訳しています。 この命令を翻訳したいと思います。NSMutableArrayに格納されているクラスの属性の値を取得します。

new_fitness += abs(int(population[i].str[j] - target[j])); 

new_fitneesは整数です。 Targetは文字列であり、母集団はstrと呼ばれる文字列属性を含むです。

私はこのsecuenceで試してみました:最初characterAtIndexに欠落しています。

new_fitness += abs([[population objectAtIndex:i] cadena characterAtIndex:j] - [target characterAtIndex:j]); 

私が伝えるエラーメッセージを得ます。

new_fitneesはNSInteger変数です。 TargetはNSStringであり、母集団はです。NSMutableArrayには、cadenaという文字列属性が含まれています。

最後に、Objetive-CでC操作を3つまたは4つの小さな操作に分割する方が良いでしょうか?私はObj-Cを取得した順番があまりにも複雑であると思う。

+0

を見ていない、あなたが問題を抱えている場合は特に。 –

答えて

1

wtfは「カデナ」です。また、あなただけのテストオブジェクト

NSInteger new_fitness = 0; 
NSString *target = @"test"; 
NSMutableArray *population = [NSArray arrayWithObject:@"cadena"]; 

new_fitness += abs([[population objectAtIndex:0] characterAtIndex:1] -[target characterAtIndex:1]); 

ためintValueが必要になります - それはあなたが小さな操作にそれを打破する場合は、コードを理解することがはるかに簡単だエラー

+0

ええ、私はintValueを使う必要があることを知っています。しかし、私はatribute cadena(文字列)でこのメソッドを使用する場所を知らない –

関連する問題