2

对于这样的选择器:

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

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

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

2 回答 2

20

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

尝试将其更改为:

[[mockObject expect] callFoo:(NSError * __autoreleasing *)[OCMArg anyPointer]];
于 2013-03-07T08:18:01.773 回答
-1

通常,当 OCMock 对某个选择器有问题时,除了编写 OCMock 喜欢的包装选择器之外别无他法。丑陋的 hack,但它绕过它,让你使用 ARC,并且设置时间不到一分钟。

不幸的是,我发现自己一直在使用 OCMock。

于 2013-03-06T23:11:23.657 回答