2011-09-13 15 views
25

Czy można wycofać cały protokół? Używam kompilatora GCC dostarczonego z pakietem iOS SDK 5.0 Beta 7.Jak mogę wycofać cały protokół?

DEPRECATED_ATTRIBUTE wydaje się nie działać.

Na przykład następujące dwie instrukcje nie są kompilowane.

  • @protocol DEPRECATED_ATTRIBUTE MyProtocol
  • @protocol MyProtocol DEPRECATED_ATTRIBUTE

Odpowiedz

49

nie próbowałem ten sam, ale myślę, że po składnia powinna działać.

__attribute__ ((deprecated)) 
@protocol MyProtocol 
@end 

To jest odpowiednikiem składni do wycofywania całego interfejsu, a także pojedynczej metody.

__attribute__ ((deprecated)) 
@interface MyClass 
@end 

@interface MyClass2 
- (void) method __attribute__((deprecated)); 
@end 
+0

Huh. Zupełnie o tym nie myślałem. – Hyperbole

+11

Zdaję sobie sprawę, że jest stary, ale tak samo jak w ostatnim wydaniu Clanga, możesz po prostu użyć: '' '__deprecated''' jako skrót dla' '__attribute__ ((przestarzałe))' ''. – mszaro

+3

'__deprecated' nie ma nic wspólnego z wersjami klang. Jest dostarczany przez nagłówki systemowe w /usr/include/sys/cdefs.h. Możesz również użyć '__deprecated_msg (" Notatka dla programistów używających go. ")', A kompilator wydrukuje wiadomość wraz z informacją o wycofaniu. –

Powiązane problemy