このようなセレクタの場合:
-(void) callFoo:(NSError**)error;
以下のような期待を機能させるにはどうすればよいですか? ARC はこの種の期待を好まないので、単体テスト ファイル全体で ARC を無効にしたくありません。
[[mockObject expect] callFoo:[OCMArg anyPointer]];
このようなセレクタの場合:
-(void) callFoo:(NSError**)error;
以下のような期待を機能させるにはどうすればよいですか? ARC はこの種の期待を好まないので、単体テスト ファイル全体で ARC を無効にしたくありません。
[[mockObject expect] callFoo:[OCMArg anyPointer]];
anyPointer
void * を返しますが、ARC では、Objective-C オブジェクトへの double ポインターは暗黙的に __autoreleasing で修飾されます。
次のように変更してみてください。
[[mockObject expect] callFoo:(NSError * __autoreleasing *)[OCMArg anyPointer]];
多くの場合、OCMock が特定のセレクターに問題を抱えている場合、OCMock が好むラッパー セレクターを作成する以外に方法はありません。醜いハックですが、回避できます。ARC を使用できます。セットアップには 1 分もかかりません。
残念ながら、OCMock で常に使用していることに気づきました。