2

コンパイラエラー'receiver' is unavailable: this system field has retaining ownershipを以下の行3に修正するにはどうすればよいですか?ARCでobjc_super.receiverを使用できないのはなぜですか?

UIKIT_STATIC_INLINE void sample_drawRect(id self, SEL _cmd, CGRect rect) { 
    struct objc_super super; 
    super.receiver = self; 
    super.super_class = class_getSuperclass([self class]); 
    objc_msgSendSuper(&super, @selector(drawRect:)); 
} 
+0

mallocとstruct objc_superへのポインタを使用するとどうなりますか? –

答えて

2

ARCを使用すると、C-StructsはObjective-Cオブジェクトへのポインタを格納できません。

このようなブリッジキャストを試しましたか?

super.receiver = (__bridge void*)self; 
0

objective-c(.mmファイル)の代わりにobjective-C++を使用します。

関連する問題