下面是三个代码片段,前两个是两个对象的接口以及一些@property命令。请注意,这只是我的学习,它不是一个应用程序的一部分只是一个小测试程序。
在第二个@property中添加(保留)后,我注意到当我的程序退出时,我的机器对象漏了,我做的就是在Artist对象dealloc中添加一个版本,这听起来不错吗?
@interface Machine : NSObject
{
NSString *name;
NSString *type;
NSString *os;
}
@interface Artist : NSObject
{
NSString *name;
Machine *system;
}
@property(copy) NSString *name;
@property(retain) Machine *system;
@end
// DEALLOC IN @implementation Artist
-(void)dealloc {
NSLog(@"_deal: %@", self);
[system release];
[super dealloc];
}
加里
答案 0 :(得分:4)
如果您的目标是Mac OS X,最好的答案是打开垃圾收集并删除-dealloc方法。
要回答具体问题,您需要在release
方法中name
system
和-dealloc
。
答案 1 :(得分:2)
每次调用retain或alloc方法时,必须手动调用release。
答案 2 :(得分:0)
是的,将其设置为nil或根据操作系统调用release。