我正在运行这样的代码,它返回给我这个错误:
Incompatible integer to pointer conversion initializing NSArray *_strong with an expression of type 'int'.
代码是这样的:
- (NSArray *)randperm:(int)total
{
    NSMutableArray *array = [[NSMutableArray alloc] init];
    int counter = 0;
    while (counter < total) {
        NSNumber *randomInteger = [NSNumber numberWithInt:(arc4random_uniform(total)+1)];
        if (![array containsObject:randomInteger]) {
            [array addObject:(randomInteger)];
            counter++;
        }
    }
    NSArray *arr = [array copy];
    return arr;
}
我这叫它:
NSArray *array = randperm(6);
这一行给我一个错误.不确定为什么会出现这样的错误.
您正在调用Objective-C方法,就好像它是C:
NSArray *array = randperm(6);
它应该是:
NSArray *array = [self randperm:6];
此外,在返回数组之前无需复制数组:
NSArray *arr = [array copy];
return arr;
做就是了:
return array;
| 归档时间: | 
 | 
| 查看次数: | 243 次 | 
| 最近记录: |