我有一個包含NSArray對象的類。 這樣關於釋放對象的問題
#import <Foundation/Foundation.h>
@interface myClass : NSObject {
NSArray *myArray;
}
@property (nonatomic, retain) NSArray *myArray;
@end
在.m文件,我在初始化init方法myArray的,並在dealloc方法釋放myArray的。
在一個方法中,我創建它的對象並將其添加到一個NSMutableArray。
myClass *my = [[myClass alloc] init];
NSLog(@"init finish %d",[my retainCount]);
NSMutableArray *a = [[NSMutableArray alloc] init];
[a addObject:my];
NSLog(@"array added finish %d",[my retainCount]);
NSLog(@"array added finish %d",[my.myArray retainCount]);
[my release];
當我添加對象「我的」NSMutableArray,「我」的retainCount被添加。 但myArray沒有。這是否意味着我必須保留我的陣陣? 或其他我可以做的事情。 我釋放「我的」對象後,此代碼是否可以正常工作?
[a objectAtIndex:0];
謝謝!
這段代碼實際上工作嗎?我沒有看到nd my.myArray之間的任何連接。如果你沒有在myClass中初始化它,myArray就是零。 myArray的所有者是myClass的一個實例。 – 2011-03-25 13:55:11