我目前正在尝试使用 GCC4.2(原始:4.0)编译 OCMock 并开始收到以下警告:
警告:从不同的 Objective-C 类型传递 'partialMockForObject:' 的参数 1
调用方法是:
- (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;
使用强制转换为 id 为参数添加前缀可以解决问题。我认为所有对象都是 NSObject 的子类,尽管强制转换是隐式的(超类替换:超类总是可以被它的任何子类替换)