2

このようなセレクタの場合:

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

以下のような期待を機能させるにはどうすればよいですか? ARC はこの種の期待を好まないので、単体テスト ファイル全体で ARC を無効にしたくありません。

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

2 に答える 2

20

anyPointervoid * を返しますが、ARC では、Objective-C オブジェクトへの double ポインターは暗黙的に __autoreleasing で修飾されます

次のように変更してみてください。

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

多くの場合、OCMock が特定のセレクターに問題を抱えている場合、OCMock が好むラッパー セレクターを作成する以外に方法はありません。醜いハックですが、回避できます。ARC を使用できます。セットアップには 1 分もかかりません。

残念ながら、OCMock で常に使用していることに気づきました。

于 2013-03-06T23:11:23.657 に答える