可能な重複必要:
check retain count保持/解放カウントの問題。明確化が
私はretain
、release
カウントで遊んでいたので、私は状況に走ったが、私が説明することはできませんよ。
- クラス
O
があります。変数を含んでおらず、何もしません。 - クラスCountがあります。それは、
O
と増分を初期化し2個のボタンを備えたUIのペン先があり - それのためにカウントをデクリメント:すべてのdoRetainについては
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
o = [[O alloc]init]; // At this moment [o retainCount] is 1 as expected
....
を保持し、リリース、
期待通りの増分をカウント- (IBAction)doRetain:(id)sender {
[o retain];
NSString *result = [[NSString alloc] initWithFormat:@"%d", [o retainCount]];
[label setText: result];
[result release];
}
リリースが呼び出されるたびに、カウントが減少します
- (IBAction)doRelease:(id)sender {
[o release];
NSString *result = [[NSString alloc] initWithFormat:@"%d", [o retainCount]];
[label setText: result];
[result release];
}
は2に上がるマニュアルが続く
- 考えてみましょう
- 次に、カウントを減らして1に下がります。
- h次の減少.....一見何もしません保持カウントはまだ1です
- このリリースは、悪いメモリを参照し、アプリケーションをクラッシュします。
あなたは本当に[retainCount]機能を使用しないでください他の最近の記事に述べたように、私は、この動作
これは理にかなっています。ありがとうダグ – JAM