Jestem częścią zespołu opracowującego dość dużą aplikację na iPada iw rezultacie stworzyliśmy wiele różnych klas. Problem polega na tym, że niektóre metody są teraz dość przestarzałe i nie chcę ich po prostu usuwać, ponieważ wiem, że niektóre części całego systemu używają metod ... ale są dostępne lepsze (nowsze) warianty, które powinny być używane zamiast tego (niektóre stare faktycznie nazywają nowe, ale ogólny interfejs klasy robi się bałaganiarski).
Czy istnieje sposób, w jaki mogę oznaczyć niektóre metody jako zdeprecjonowane (jak @deprecated
w Javie i [Obsolete]
.NET).
Widzę, że Apple używa Availability.h i ma tagi, takie jak
__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_NA,__MAC_NA,__IPHONE_2_0,__IPHONE_3_0);
... czy to jedyny sposób, aby to zrobić (+ czy jest to bezpieczne w App Store?), czy też istnieją alternatywy, które oznaczą ostrzeżenie w Xcode?
źródło
__attribute__
składni.#define __deprecated__ __attribute__((deprecated))
IMHO, łatwiej jest napisać __deprecated:
Działa też na zajęciach
źródło
DEPRECATED_ATTRIBUTE
? Tylko dlatego, że jest krótszy, czy jest jakaś rzeczywista różnica?Jeśli chcesz przekazać dodatkowy komunikat z flagą wycofania, możesz użyć następujących flag.
Używając powyższych flag, możesz określić, dlaczego wycofujesz się lub jaką metodę powinien zastosować programista w przyszłości.
źródło
Aby oznaczyć metodę jako przestarzałą, użyj __attribute __ ((przestarzała ("Twoja wiadomość jest tutaj")))
Praktyczny przykład z firmy Mantle
źródło
Użyj
deprecated
atrybutu:źródło