Пока Вы используете Name
маркер, контракт идентичен независимо от того, используются ли поле или свойство.
[DataMember(Name="SomeValue")]
private int m_SomeValue;
Однако могут быть некоторые проблемы полномочий, получающие доступ к членам парламента, не занимающим официального поста, в особенности на Silverlight и CF - в этом случае я рекомендовал бы использовать общественную собственность в качестве элемента данных. На самом деле я склонялся бы к всегда , используют свойство, если у меня не было очень серьезного основания...
Попробуйте добавить атрибут в объявление вашего метода:
- (void)fooBar __attribute__ ((deprecated));
Взято из здесь .
Ответ Тима фактически вызовет предупреждение компилятора; другие версии представляют собой просто комментарии, не влияющие на компилятор.
Если вы посмотрите /usr/include/AvailabilityMacros.h, вы увидите, как Apple это делает. В этом заголовке используются __ атрибут __ ((устаревший))
и __ атрибут __ ((недоступен))
в зависимости от того, присутствует ли API, но является устаревшим или фактически был удален из ОС.
Из Apple SFAuthorization.h:
/*!
DEPRECATED: Use obtainWithRight:flags:error:
@method permitWithRight:flags:
@abstract Call permitWithRight to gain a right to have
access to a privilege operation.
@param rightName The name of an authorization right.
@param flags Authorization flags.
*/
- (OSStatus)permitWithRight:(AuthorizationString)rightName
flags:(AuthorizationFlags)flags;
Если вы не используете автоматизированный конструктор документации, я ' Я бы сказал, что достаточно этого:
- (void)doSomething; /* DEPRECATED */
You could also follow the HeaderDoc manual. Where this syntax is used:
/*!
* @abstract Foo is good for bar.
*
* @deprecated in version 2.0
*/