J'essaie actuellement de compiler OCMock avec GCC4.2 (original: 4,0) et commencer à obtenir l'avertissement suivant:Attention: passage d 'arguments de type objectif distinct-C
avertissement: Argument 1 passant de ' partialMockForObject: » de distinct de type Objective-C
la méthode appelante est la suivante:
- (void)forwardInvocationForRealObject:(NSInvocation *)anInvocation
{
// in here "self" is a reference to the real object, not the mock
OCPartialMockObject *mock = [OCPartialMockObject partialMockForObject:(id)self];
// ...
}
et e La méthode appelée est la suivante:
+ (id)partialMockForObject:(NSObject *)anObject;
en préfixant l'argument avec un cast en id corrige le problème. Je pensais que tous les objets étaient sous-classe de NSObject et que la distribution serait implicite (super classe de substitution: une super classe peut toujours être remplacée par une classe enfant)
c'est vraiment une classe de dérivation NSProxy. Est-ce qu'un casting à (id) fonctionnera? Merci beaucoup, je vais le marquer comme la bonne réponse. –
@Johannes: Presque certainement. Je sais que dans d'autres versions de ce framework, la signature de la méthode avait un type d'argument id, et NSProxy répondrait à tout ce que fait l'objet à l'autre extrémité. – Chuck