在Objective-C中询问int数组

aon*_*aon 1 iphone objective-c

下面的代码是一个简单的c#函数返回一个int数组.我想知道如何将其转换为Objective-C

private int[] test()
{
    int[] a = new int[2];
    a[0] = 1;
    a[1] = 2;
    return a;
}
Run Code Online (Sandbox Code Playgroud)

Ste*_*son 5

以下代码应该有效:

- (NSArray *)test {
    NSArray *a = [NSArray arrayWithObjects:[NSNumber numberWithInt:1], [NSNumber numberWithInt:2], nil];
    return a;
}
Run Code Online (Sandbox Code Playgroud)

请注意,如果我们创建了NSArrayusing [[NSArray alloc] initWithObjects:blah, blah, nil];,我们必须autorelease在返回之前显式地使用该数组,以避免内存泄漏.但是,在这种情况下,NSArray使用便捷构造函数创建,因此数组已经autorelease为我们所用.

第二个问题:

试试这个:

- (NSMutableArray *)test:(int)count {
    NSMutableArray *a = [[NSMutableArray alloc] init];
    for (int i = 0; i < count; i++) {
        [a insertObject:[NSNumber numberWithInt:0] atIndex:i];
    }
    return [a autorelease];
}
Run Code Online (Sandbox Code Playgroud)