Class 型の ivar が必要で、ポインターが渡された後もポインターを保持したいのですが、何をしても、arc はそれをさせてくれません。たとえば、私が宣言した場合
@property (nonatomic, strong) Class myClass;
コンパイラは、myClass を unsafe_unretained にする必要があると判断します。そして、私がこれを試してみると:
-(id) initWithClass: (Class) passedInClass {
if ((self = [super init])) {
self.myClass = passedInClass;
}
return self;
}
何が起こるかというと、クラスが呼び出しコードで非 nil であっても、init メソッド内では nil です。
アークをオフにする以外に、これを回避する方法はありますか?
編集:この質問は間違っています。それは機能します。受け入れられた回答を参照してください。