请帮助我,这段代码是否正确?我的意思是,我们真的需要这个类中的dealloc方法,为什么我们不喜欢?如果我们不在这里使用dealloc,会是内存泄漏吗? 感谢名单!
#import <Foundation/Foundation.h>
@interface MyData : NSObject
{
@private
NSString *name;
NSString *surname;
NSString *email;
NSString *telephone;
UIImage *image;
}
@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSString *surname;
@property (nonatomic, retain) NSString *email;
@property (nonatomic, retain) NSString *telephone;
@property (nonatomic, retain) UIImage *image;
@end
#import "MyData.h"
@implementation MyData
@synthesize name;
@synthesize surname;
@synthesize email;
@synthesize telephone;
@synthesize image;
- (void) dealloc
{
[name release];
[surname release];
[email release];
[telephone release];
[image release];
[super dealloc];
}
@end
答案 0 :(得分:3)
代码是正确的,是的,如果你没有dealloc就会出现内存泄漏。
如果设置姓氏或电子邮件,则会保留字符串。然后可以免费获取MyData实例,并且没有dealloc的姓氏,或者电子邮件字符串仍然会挂起,但现在你无法引用它 - 泄漏。
答案 1 :(得分:0)
请再次指明您的问题。您只是要声明对象吗?如果你这样做你不需要解除它们。如果你要在类的任何部分声明并分配它们,你将需要dealloc方法来释放内存。
所以要小心内存管理,因为如果你没有释放内存,它会提供内存泄漏,如果你要释放或释放任何对象而不分配内存,它会给你的应用程序崩溃。