Я сейчас пытаюсь скомпилировать OCMock с GCC4.2 (оригинал: 4.0) и начать получать следующее предупреждение:
предупреждение: передача аргумента 1 из
partalMockForObject: от отличного
Объектив-тип C
метод вызова:
- (void)forwardInvocationForRealObject:(NSInvocation *)anInvocation
{
// in here "self" is a reference to the real object, not the mock
OCPartialMockObject *mock = [OCPartialMockObject partialMockForObject:(id)self];
// ...
}
и вызываемый метод:
+ (id)partialMockForObject:(NSObject *)anObject;
Префикс аргумента приведения к идентификатору устраняет проблему. Я думал, что все объекты были подклассом NSObject и хотя приведение было бы сделано неявным (замена суперкласса: суперкласс всегда можно заменить любым его дочерним классом)