"Falta advertencia " en un proyecto ARC

He refacturado un proyecto para ARC. Se ve bien, pero hay un object que usa el centro de notifications. Eliminé el observador en un método dealloc personalizado. Eso funcionó bien en el proyecto no ARC. También funciona en ARC, pero recibo una advertencia loca: "El método posiblemente falte una llamada [super disputa]". En un proyecto ARC, se realiza automáticamente para mí, cuando el método finaliza. Aún mejor: ¡no debo llamarlo en proyectos ARC! Esto debe ser un error XCode, ¿verdad? Aquí está mi código:

- (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; // [super dealloc]; will be called automatically } 

Siempre quiero escribir un código que no arroje advertencias. ¿Hay alguna forma de ese signo de exclamación amarillo?

Coloque las siguientes líneas en su método dealloc para asegurarse de que esté comstackdo con ARC habilitado:

 #if ! __has_feature(objc_arc) #error "ARC is off" #endif 

Si obtiene el error del comstackdor al build, está seguro de que ARC está apagado y debe search el motivo. Probablemente esté en la configuration de compilation por file en su objective.

Resolví esta advertencia siguiendo los siguientes pasos:

  1. Haga clic en destino ( <yourapp>.xcodeproj ) en el que la <classname>.m file ( <classname>.m ) muestra la advertencia anterior
  2. Seleccione TARGET >> Fases de compilation >> Fuentes de compilation
  3. Archivo de búsqueda
  4. Agregar banderas de comstackdor -fobjc-arc

Esto se ve a continuación

introduzca la descripción de la imagen aquí

"¿Has intentado apagarlo y volver a encenderlo?"

Esta es una respuesta tonta, pero limpiar el objective y reiniciar Xcode ha resuelto este comportamiento tan irritante para mí.

  • Menú> Producto> Limpiar
  • Menú> Producto> (presione la tecla alt) Limpiar carpeta de proyecto
  • reiniciar Xcode

Después de eso, obtuve más avisos relacionados con ARC, así que claramente, Xcode no terminó de convertir a ARC. Ahora la advertencia se ha ido y todo funciona bien.