对于这样的选择器:
-(void) callFoo:(NSError**)error;
我怎样才能得到像下面这样的期望工作?ARC 不喜欢这种期望,我不想为整个单元测试文件禁用 ARC!
[[mockObject expect] callFoo:[OCMArg anyPointer]];
对于这样的选择器:
-(void) callFoo:(NSError**)error;
我怎样才能得到像下面这样的期望工作?ARC 不喜欢这种期望,我不想为整个单元测试文件禁用 ARC!
[[mockObject expect] callFoo:[OCMArg anyPointer]];
anyPointer
返回 void *,但在 ARC 下,指向 Objective-C 对象的双指针使用 __autoreleasing 隐式限定。
尝试将其更改为:
[[mockObject expect] callFoo:(NSError * __autoreleasing *)[OCMArg anyPointer]];
通常,当 OCMock 对某个选择器有问题时,除了编写 OCMock 喜欢的包装选择器之外别无他法。丑陋的 hack,但它绕过它,让你使用 ARC,并且设置时间不到一分钟。
不幸的是,我发现自己一直在使用 OCMock。