Har*_*ode 2 objective-c nsnumber
这是我的代码
我循环遍历数组并添加到NSNumber.
NSNumber *totalValue = 0;
NSMutableArray *items = [10, 35, 25]; // Just for demo
for (int i=0; i < items.count; i++)
{
totalValue = totalValue + [items objectAtIndex:i] // How do I add the totalValue?
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮我这个代码吗?
小智 9
NSNumber是Objective-C类.与C++不同,运算符不能在Objective-C中重载,因此您必须手动调用所有内容.
NSNumber *totalValue = [NSNumber numberWithInt:0];
for(…) {
totalValue = [NSNumber numberWithInt:[totalValue intValue] + [[items objectAtIndex:i] intValue]];
}
Run Code Online (Sandbox Code Playgroud)
您可能想要使用NSInteger,这更快(特别是对于大量项目:内存分配很昂贵):
NSInteger totalValueInteger = 0; // no pointer, NSInteger is a POD!
for (…) {
totalValueInteger += [[items objectAtIndex:i] integerValue];
}
NSNumber *totalValue = [NSNumber numberWithInteger:totalValueInteger];
Run Code Online (Sandbox Code Playgroud)
您应该只NSNumber在需要 Objective-C对象时使用,例如在数组,字典或编码器中.否则,请使用POD NSInteger,int或double.