2011-01-04 13 views
5

Czy istnieje #pragma przesłonić ostrzeżenie czasu kompilacji, np:Jak zastąpić przestarzałe ostrzeżenie w Xcode?

warning: 'ADBannerContentSizeIdentifier480x32' is deprecated (declared at /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/System/Library/Frameworks/iAd.framework/Headers/ADBannerView.h:111) 

muszę zachować kompatybilność dla pre-4.2 iOS przez:

NSString *iAdSize = (osVersion >= 4.2) ? ADBannerContentSizeIdentifierPortrait : ADBannerContentSizeIdentifier480x32; 

Dzięki

Odpowiedz

2

Istnieje build ustawienie, aby włączyć ostrzeżenie o przestarzałych funkcjach.

Mimo że właściwą metodą jest sprawdzenie wersji systemu operacyjnego w środowisku wykonawczym i wykonanie w razie potrzeby nieaktualnej lub nowej metody.

+0

szukam przełącznik, który wyłącza określone, przestarzałe ostrzeżenie, które wiem, co robię, ale nie wyłączam wszystkich. Dzięki. – ohho

+0

W takim przypadku sprawdź moją drugą odpowiedź na to pytanie. –

0

Można ukryć konkretne przestarzałe ostrzeżenie, tworząc plik "Deprecated.h", w którym deklarujesz nieaktualne metody jako dobre w kategorii.

+2

To jest zły pomysł, powinieneś zamiast tego po prostu stłumić konkretne ostrzeżenie za pomocą składni pragma – odyth

7

Tak jest

#pragma clang diagnostic push 
#pragma clang diagnostic ignored "-Wno-deprecated-declarations" 
//deprecated function 
#pragma clang diagnostic pop 

Jeśli kiedykolwiek zastanawiałeś się, co właściwa składnia jest pewien błąd prostu znaleźć go w Xcode następnie spojrzeć na szybką pomoc

enter image description here

+4

Musiałem użyć diagnostyki #pragma clang zignorowanej "-Wdeprecated-deklaracje", aby działało. – CodeReaper

Powiązane problemy