对于这样的选择器:
-(void) callFoo:(NSError**)error;
我怎样才能得到如下的期望? ARC不喜欢这种期望,我不想为整个单元测试文件禁用ARC!
[[mockObject expect] callFoo:[OCMArg anyPointer]];
答案 0 :(得分:19)
anyPointer
返回void *,但在ARC下,double pointers to Objective-C objects are implicitly qualified with __autoreleasing。
尝试将其更改为:
[[mockObject expect] callFoo:(NSError * __autoreleasing *)[OCMArg anyPointer]];
答案 1 :(得分:-1)
通常情况下,除了编写OCMock在某个选择器出现问题时OCMock喜欢的包装选择器之外别无他法。丑陋的黑客,但它绕过它,让你使用ARC,并花费不到一分钟的时间来设置。
不幸的是,我发现自己一直在和OCMock一起使用它。