2011-12-04 43 views
0

我正在翻譯C代碼來理解與C的Objective-C差異。我想翻譯此指令。獲取存儲在NSMutableArray上的類的屬性值

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

new_fitnees是一個整數變量。 Target是一個字符串,人口是一個其中包含字符串屬性str

我試着用這個secuence:

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

我獲得講述了一個錯誤消息:在第一characterAtIndex缺失。

new_fitnees是一個NSInteger變種。 Target是一個NSString,人口是一個NSMutableArray其中包含一個名爲cadena的字符串屬性。

最後,在Objetive-C中將C操作拆分爲3或4個小操作會更好嗎?我認爲我獲得的序列Obj-C太複雜,無法閱讀。

+0

這是很容易理解的代碼,如果你把它分解成小的業務,特別是如果你遇到了麻煩。 –

回答

1

wtf是「cadena」刪除它。你還需要爲的intValue只是測試對象

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

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

- 沒有看到錯誤

+0

是的我知道我需要使用intValue。但我不知道在哪裏把這個方法用於cadena屬性(字符串) –