Xcode "AppDelegate * const __strong 'al parámetro de tipo incompatible" error

Cuando declaro la interfaz appDelegate siguiente manera para configurar NSXMLParserDelegate , recibo algunas advertencias de otras vistas que utilizan [[UIApplication shanetworkingApplication] delegate];

 @interface AppDelegate : UIResponder <UIApplicationDelegate, NSXMLParserDelegate> 

warning: Inicializando 'AppDelegate * __ strong' con una expresión de tipo incompatible 'id'

Sin embargo, si lo elimino, aparece otra advertencia debido a la configuration propia de xmlParser,

 @interface AppDelegate : UIResponder <UIApplicationDelegate> 

warning: Enviando 'AppDelegate * const __strong' al parámetro de tipo incompatible 'id'

en

  xmlParser = [[NSXMLParser alloc] initWithData:receivedData]; [xmlParser setDelegate:self]; 

¿Cómo eliminar ambos? gracias

Realmente no deberías hacer tu AppDelegate exponiendo públicamente las interfaces. Crea un acoplamiento muy estrecho entre todo su código. Si otro código (fuera de su AppDelegate) necesita un NSXMLParserDelegate, debería crear una class diferente para él.

Parece que su AppDelegate necesita ser un delegado para sus propios fines. Puede implementar "privadamente" la interfaz haciendo una extensión de class en su file AppDelegate.m.

 @interface AppDelegate() <NSXMLParserDelegate> @end 

Hacer lo anterior eliminará la advertencia que recibió aquí:

 [xmlParser setDelegate:self];