关注Apple's examples之一,我得到了
Pointer to non-const type 'id' with no explicit ownership
还有其他一些错误...... 这是我的片段:
NSArray *mArray = argsList;
id *objects;
NSRange range = NSMakeRange(2, [argsList count]);
objects = malloc(sizeof(NSString *) * range.length);
[mArray getObjects:objects range:range];
for (i = 0; i < range.length; i++) {
NSLog(@"Args: %@", objects[i]);
}
free(objects);
错误从第二行开始。我的猜测是我必须禁用ARC,但如果有办法保留它,我会更高兴。 我怎么能这样做? (是的!我需要一个身份证*)
答案 0 :(得分:0)
由于Cy-4AH建议__unsafe_unretained
解决了这个问题:
现在看起来像:
NSArray *mArray = argsList;
__unsafe_unretained id *objects;
NSRange range = NSMakeRange(1, [argsList count]-1);
objects = (__unsafe_unretained id*)malloc(sizeof(NSString *) * range.length);
[mArray getObjects:objects range:range];