ヘッダファイル:なぜ私の変数はメソッド間で持続しないのですか? - iPhone
NSString *righta;
@property(nonatomic, retain) NSString *righta;
(私は通常私の変数のための@property宣言をするが、これは、変数を助けるかもしれないと思っていない、それはしていないものの、クラスを通じて持続)
実装ファイル:第二の機能で文字列の値にアクセスしようとすると、
@synthesize righta;
- (void) function1 {
righta = [NSString stringWithFormat:@"A"];
}
- (IBAction)function2:(id)sender {
NSLog(@"righta is still %@", righta);
}
、私が受け取ります"EXC_BAD_ACCESS"とアプリがクラッシュします。
助けがあれば幸いです。
ありがとうございます!
私はすべての3つの答えに投票しましたが、これは最も完全であるという理由で授与されました。 – RanLearns
あなたの答えに基づいて、私はあなたも[権利を保持する]ことができると思います。それはうまくいくはずですが、理由のプロパティが優先される理由は...不必要な保持と解放の呼び出しを排除するだけですか? – RanLearns
はい、それもうまくいくでしょう。プロパティは、メモリ管理をカプセル化する定型コードを排除するので好ましい。 – albertamg