【发布时间】:2012-12-28 20:52:24
【问题描述】:
我见过this,但需要比这更简单的方法。
如果我有一个 NSNumbers 数组并且我想增加其中一个,我必须这样做吗?
[myMutableArray replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:[(NSNumber *)[myMutableArray objectAtIndex:index] intValue] + 1]];
或
myArray = [myArray.mutableCopy replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:[(NSNumber *)[myArray objectAtIndex:index] intValue] + 1]].copy;
如果您出于某种原因决定使用不可变数组。
我知道我总是可以只使用一个 int 数组,但我只是好奇是否有一种简单的方法可以做到这一点。
另外,如果我需要在实现或完整文件(整个 .m)中访问它而不使其成为全局,我应该如何定义一个 int 数组?
是否就像将其放在我的实现/文件顶部一样简单?
static int *myInt;
【问题讨论】:
-
我觉得这种方式很简单。
-
您可以使用@() 代替+numberWithInt 使其更简洁:
-
@H2CO3 我想我将它与
myInt++的属性或iVar增量进行比较 -
...并且不将
id转换为NSNumber *。编译器无论如何都会从选择器名称中猜测类型。 -
@Catfish_Man 是的。我想避免在我的问题中写文字,所以我不会混淆任何发现我的问题的人。
标签: objective-c ios nsarray increment nsnumber