私はobjective-cが初めてで、メモリ管理を理解しようとしています。
Apple による優れたCocoa のメモリ管理プログラミング ガイドを読んだ後、私の唯一の懸念は、自動解放されたオブジェクトが実際に iPhone/iPod アプリケーションで解放されたときです。私の理解は、実行ループの最後にあります。しかし、アプリケーションで実行ループを定義するものは何でしょうか?
それで、次のコードが正しいかどうか疑問に思っていました。オブジェクトを仮定する
@implementation Test
- (NSString *) functionA {
NSString *stringA;
stringA = [[[NSString alloc] initWithString:@"Hello"] autorelease]
return stringA;
}
- (NSString *) functionB {
NSString *stringB;
stringB = [self functionA];
return stringB;
}
- (NSString *) functionC {
NSString *stringC;
stringC = [self functionB];
return stringC;
}
- (void)viewDidLoad {
[super viewDidLoad];
NSString* p = [self functionC];
NSLog(@"string is %@",p);
}
@end
このコードは有効ですか?
リンゴのテキストから、 functionAから返された NSString がfunctionBのスコープで有効であることを理解しています。functionCとviewDidLoadで有効かどうかはわかりません。
ありがとう!