以下代码给出了错误:
//  constants.h
extern NSArray const *testArray;//  constants.m
NSArray const *testArray = [NSArray arrayWithObjects:  @"foo", @"bar", nil];我得到的错误是
initializer element is not constant
或者,如果我拿走指针指针(*),我得到:
 statically allocated instance of Objective-C class 'NSArray'
假设对象A有一个属性:
@property (nonatomic, strong) Foo * bar;
在实现中合成为:
@synthesize bar = _bar;
对象B操纵a Foo **,如本示例中对象A的调用:
Foo * temp = self.bar;
[objB doSomething:&temp];
self.bar = temp;
doSomething:方法的正确声明是什么?此外,假设在我有机会设置属性之前可以释放对象Bbar(从而获取指向的实例的所有权temp) - 我如何告诉ARC切换拥有的引用?换句话说,如果我想让以下示例代码段起作用,我将如何处理ARC问题?
Foo * temp = self.bar;    // Give it a reference to some current value
[objB doSomething:&temp]; // Let it modify the reference
self.bar = nil;           // Basically release whatever we have
_bar = temp;              // Since we're …有人可以__autoreleasing在下面的示例代码块中向我解释一下目的吗?
- (void)execute:(NSError * __autoreleasing *)error {
    // do stuff, possibly assigning error if something went wrong
}
我删除了__autoreleasing所有东西似乎仍然编译/运行正常.我开始使用obj-c后ARC,所以我从来没有真正学过/理解所有那些双下划线的东西.我已阅读ARC过渡指南,但我不完全了解他们的NSError示例.