2009-02-16 40 views
5

Tengo un proyecto que se compila con algunas advertencias. Es un proyecto de iPhone que usa algunos métodos en NSDate, que aparentemente no son los encabezados del SDK de iPhone, pero funcionan sin problemas. Cuando llamo a estos métodos consigo advertencias como:Ignorar permanentemente las advertencias

NSDate warnings http://beautifulpixel.com/assets/NSDate_Warnings-20090215-235727.png

Entonces, ¿cómo silenciar a los avisos de forma permanente, con el fin de decirle a XCode "está bien, de verdad."

¿O cómo puedo corregir las advertencias? Este código funciona muy bien en el dispositivo y Apple ya aprobó una aplicación que utiliza estos mismos métodos, así que seguramente puedo hacer que XCode comprenda que los métodos realmente están ahí.

Respuesta

3

puede escribir una extensión de la interfaz corta temprano en que .m archivo para suprimir estas advertencias

Ejemplo:

@interface NSDate (SuppressSomWarnings) 
- (void)dateWithNaturalLanguageString:(NSString*)_str; 
@end 
2

Es extraño, no tengo ninguna advertencia cuando escribo las mismas dos líneas ... ¿Importó correctamente los encabezados y marcos en su proyecto?

Veo que están definidos en NSCalendateDate.h, que se encuentra en Foundation.framework.

De lo contrario, puede intentar e incluir las definiciones de interfaz directamente en su código, por ejemplo, en la parte superior de su archivo .m, para ver si eso elimina las advertencias. (¡Vea la respuesta de epatel que apareció mientras escribía esto!)

+0

Mi Foundation.framework no tiene ese archivo de encabezado; solo NSDate.h (que carece de estos métodos) y NSCalendar.h (que describe la clase NSCalendar). Para ser claro, este es un proyecto de iPhone. Creo que los encabezados de Cocoa definen estos métodos muy bien, pero los encabezados de UIKit no. –

+0

Lo mismo para mí: proyecto de iPhone. Estoy usando el último SDK para iPhone 2.2.1. No es normal que falte este archivo de encabezado, tal vez deberías tratar de reinstalar xcode ... – squelart

+0

, parece de esa manera ... Gracias por el control de cordura. –

0

¿Tiene configurado el SDK correcto? Puede que le guste la versión más nueva, pero usando viejos archivos de encabezado.

+0

Sí, mi Foundation.framework es proporcionado por el 2.2 SDK. –

8

Le recomiendo encarecidamente que no utilice estos métodos. El hecho de que se declaren en el marco de Foundation de Mac OS X no impide que sean API privadas en el iPhone. Apple estaría en su derecho de descontinuar su aplicación de la tienda. Del mismo modo, no hay nada que impida que Apple arregle un poco la Fundación para una versión de iPhone OS 2.2.2 o posterior y elimine esos dos métodos, rompiendo así su aplicación.

0

Su código puede funcionar en el simulador, pero ¿funciona en el teléfono?

El simulador utiliza el marco OS X Foundation que es un superconjunto de lo que está disponible en el iPhone.

Cuestiones relacionadas