0

很基本的问题。我需要初始化一个 NSMutableArray,其值从 1 到 n(或者说 m 到 n)。在不使用 for 循环的情况下,我可以做些什么来初始化数组吗?我的意思是有没有类似的东西:

[[NSMutableArray alloc] initWithSomeThing];

提前致谢。

4

3 回答 3

7

简短的回答:没有

长答案:不

最简单的方法是查找类引用,看看它是否有类似的东西

于 2013-07-17T11:38:07.553 回答
0

NSArrays旨在包含对象。仅包含整数的对象是相当重的。

当它总是从 1 开始上升到 n 为什么不将 n 值存储在变量中,而当您需要 1..n 数组时,只需从 1 到 n 做一段时间

我不明白应该需要一个 1..n NSArray,我认为这就是为什么没有方法可以使用NSArray/NSMutableArray

于 2013-07-17T11:49:54.023 回答
0

您可以创建一个类别方法来执行此操作:

@interface NSMutableArray(MyConvenienceMethods)

+(NSMutableArray*) arrayWithValuesFrom: (int) n to: (int) m step: (int) step;

@end

@implementation NSMutableArray(MyConvenienceMethods)

+(NSMutableArray*) arrayWithValuesFrom: (int) n to: (int) m step: (int) step
{
    NSMutableArray* ret = [[NSMutableArray alloc] init];
    for (int i = n ; i <= m ; i += step) 
    {
        [ret addObject: [NSNumber numberWithInt: i]];
    }
    return ret;
}

@end

你像这样使用它:

NSMutableArray* anArray = [NSMutableArray arrayWithValuesFrom: 1 to: 100 step: 1];
于 2013-07-17T11:50:04.540 回答