a
のインスタンスですNSString
。文字列をリリースしてから印刷すると、アプリがクラッシュするのではないかと思いました。代わりに、割り当てられた適切な値を返しました。私の質問は、オブジェクトを解放した後でも、オブジェクトの値を取得できるかどうかです。そうでない場合、割り当てが解除された後でも、なぜの値を確認できるのa
ですか?
.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
{
NSString *a;
}
@end
.m
- (void)viewDidLoad
{
[super viewDidLoad];
a=[[NSString alloc]initWithString:@"abc"];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
NSLog(@"String %@",a);
[a release];
NSLog(@"release %@",a);
[a retain];
NSLog(@"retain %@",a);
}
出力:-
2012-08-24 14:15:49.501 a[1176:f803] string abc
2012-08-24 14:15:53.404 a[1176:f803] release abc
2012-08-24 14:15:55.325 a[1176:f803] retain abc