OCMock в настоящее время не поддерживает свободное совпадение примитивных аргументов. Тем не менее у меня есть свойство, которое мне нужно установить на OCMockObject
, и это свойство объявлено атрибутом copy
. Поэтому он реализует - (id)copyWithZone:(NSZone *)zone
. NSZone
определяется как typedef struct _NSZone NSZone
, а так как это структура, это примитивный тип. Поэтому я получаю ошибкуКак я могу издеваться над NSZone?
Incompatible pointer types sending 'id' to parameter of type 'NSZone *' (aka 'struct _NSZone *')
на этой линии:
[[mockObject expect] copyWithZone:[OCMArg any]];
Это лучший способ решить эту проблему объявляете свойство с атрибутом retain
, а не copy
? Преимущество использования copy
заключается в том, что объект не имеет возможности модифицироваться другим объектом.