双指针上的OCMock参数匹配

Ray*_*Ray 2 objective-c ocmock

对于像这样的选择器:

-(void) callFoo:(NSError**)error;
Run Code Online (Sandbox Code Playgroud)

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

[[mockObject expect] callFoo:[OCMArg anyPointer]];
Run Code Online (Sandbox Code Playgroud)

Chr*_*lay 19

anyPointer返回void*,但在ARC下,使用__autoreleasing隐式限定了Objective-C对象的双指针.

尝试将其更改为:

[[mockObject expect] callFoo:(NSError * __autoreleasing *)[OCMArg anyPointer]];
Run Code Online (Sandbox Code Playgroud)

  • 还有`[OCMArg anyObjectRef]` (3认同)