双指针上的OCMock参数匹配

时间:2013-03-06 22:41:53

标签: objective-c ocmock

对于这样的选择器:

-(void) callFoo:(NSError**)error;

我怎样才能得到如下的期望? ARC不喜欢这种期望,我不想为整个单元测试文件禁用ARC!

[[mockObject expect] callFoo:[OCMArg anyPointer]];

2 个答案:

答案 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一起使用它。