OCMockは現在、プリミティブ引数の緩いマッチングをサポートしていません。しかし、に設定する必要のあるプロパティがありOCMockObject
、このプロパティはcopy
属性で宣言されています。したがって、を実装し- (id)copyWithZone:(NSZone *)zone
ます。NSZone
はとして定義されtypedef struct _NSZone NSZone
、構造体であるため、プリミティブ型です。したがって、エラーが発生します
Incompatible pointer types sending 'id' to parameter of type 'NSZone *' (aka 'struct _NSZone *')
この行で:
[[mockObject expect] copyWithZone:[OCMArg any]];
retain
これを解決する最善の方法は、プロパティではなく属性を使用してプロパティを宣言することcopy
ですか?使用する利点はcopy
、オブジェクトが別のオブジェクトによって変更される可能性がないことです。