¿Qué sucede si dos categorías de ObjC anulan el mismo método?

Sé de un par de reglas con respecto a las categorías de Objective-C:

Los métodos de categoría no deben anular los métodos existentes (clase o instancia)Dosdiferente Las categorías que implementan el mismo método para la misma clase generarán un comportamiento indefinido

Me gustaría saber qué sucede cuando anulo uno de mis propios métodos de categoría en la misma categoría. Por ejemplo:

@interface NSView (MyExtensions)
- (void)foo; // NSView category implementation
@end

@interface MyClass : NSView
{ }
@end

@interface MyClass (MyExtensions)
- (void)foo; // MyClass category implementation
@end

Con estas interfaces definidas, ¿qué método se ejecutará cuando ejecute el siguiente código?

MyClass * instance = [[MyClass alloc] initWith...];
[instance foo];
[instance release];

Nota: con mi compilador, la implementación de MyClass tiene prioridad, pero no estoy seguro de si eso se garantiza, o simplemente un sabor específico de comportamiento indefinido.

Respuestas a la pregunta(2)

Su respuesta a la pregunta