weak を禁止したい場合 - Automatic Reference Counting
SPECIAL
weak を禁止したい場合
どういった場面で必要になるかは分かりませんけど、実装したクラスを __weak 制御レベルでは利用させたくない場合には、@interface の前に "__attribute__((__weak_objc_arc_weak_unavailable))" を指定します。
Xcode の場合には "NS_AUTOMATED_REFCOUNT_WEAK_UNAVAILABLE" が使用できるようになっているので、次のようにしてプログラミングを行います。
// クラスを ARC の __weak 制御レベルの変数に格納することを禁止する
NS_AUTOMATED_REFCOUNT_WEAK_UNAVAILABLE
@interface aClass : NSObject
{
}
このようにすることで、上記で定義したクラスは、__weak で宣言された変数に格納することができなくなります。