2010-07-02 78 views
0

我不能SEM发现会是什么问题就在这里......无效recever int类型

NSArray *oneMove; 
oneMove = [[bestMoves objectAtIndex:i] componentsSeparatedByString:@","]; 
int from, to; 
int temp = [[oneMove objectAtIndex:0] intValue]; 

from = [temp intValue]/100; //"Invalid receiver type int" 
to = [temp intValue]%100; //"Invalid receiver type int" 

NSLog(@"%d, %d", from, to); 

的事情是:它的工作原理和“从”和“到”得到正确的价值观,但我得到的警告在指定的线...

任何人都知道为什么以及如何解决这个问题? (编译时不喜欢他们警告;))

THX

回答

3

温度已经int值,没有NSNumber。所以你不能发送一个[temp intValue]消息给它。

只需使用

from = temp/100; 
to = temp % 100; 

编辑:这里的代码来证明它的工作原理:

NSArray *bestMoves = [NSArray arrayWithObject:@"499,340,124"]; // Example data 
NSArray *oneMove = [[bestMoves objectAtIndex:0] componentsSeparatedByString:@","]; 
int from, to; 
int temp = [[oneMove objectAtIndex:0] intValue]; 

from = temp/100; // Code change 
to = temp%100; // Code change 

NSLog(@"%d, %d", from, to); 

输出为预期4,99

+0

尝试,但是那并不是给我正确的结果。温度只有4位数像3132(这就是我得到的,如果我这样做我的方式),但如果我按照你的建议,我得到97759792,而不是... – zwadl 2010-07-02 09:52:42

+0

我没有做任何改变温度。你有没有检查过oneMove是否具有你期望的价值?我想它应该是一个NSNumber对象。然后做NSLog(“%d”,temp);看看这是否有效。如果没有,你的数据模型就会被破坏。 – Eiko 2010-07-02 10:19:44

+0

oneMove数组包含2个NSCFString对象...(与bestMoves数组一样)可能有助于您的分析? – zwadl 2010-07-02 10:38:28

相关问题