2017-10-27 21 views
0
Student *stu = [[Student alloc] init]; 

[stu setAge:10]; 

[stu release]; 

[stu setAge:10]; 

stuがリリースされた場合、stuはワイルドポインタになります。 しかし、これらのコードはMRCの下にのみ表示されますが、ARCの下にあるワイルドポインタにつながるのは何ですか?iOSでは、どのサイトレイヤーがワイルドポインタになる可能性がありますか?

+0

ARCでスコープがなくなったときにオブジェクトを有効に保つ強いポインタがない場合、オブジェクトは解放されます。 – holex

答えて

0

あなたは__unsafe_unretainedで注釈を付けタイプassignまたはunsafe_unretained、または変数の性質のためにARCとのポインタをダングリング得ることができます誰もxを指していないので

// declaration 
@property(assign) Student *student; 

- (void)createStudent { 
    Student *x = [Student new]; 

    self.student = x; 
} 

、プロパティstudentは方法の後にダングリングポインタであります実行。

+0

あなたの答えをありがとう – Scott

関連する問題