我以这种方式有一个通用对象:
。H
@interface Object : NSObject{
NSNumber *iden;
NSString *name;
NSString *address;
}
@property (nonatomic, retain) NSNumber *iden;
@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSString *address;
@end
.m
@implementation Object
@synthesize name;
@synthesize iden;
@synthesize address;
- (id) initWithCoder:(NSCoder *)aDecoder {
self = [super init];
if (self) {
self.iden = [aDecoder decodeObjectForKey:@"iden"];
self.name = [aDecoder decodeObjectForKey:@"name"];
self.address = [aDecoder decodeObjectForKey:@"address"];
}
return self;
}
- (void) encodeWithCoder:(NSCoder *)aCoder {
[aCoder encodeObject:self.iden forKey:@"iden"];
[aCoder encodeObject:self.nome forKey:@"name"];
[aCoder encodeObject:self.indirizzo forKey:@"address"];
}
- (void) dealloc{
[super dealloc];
[name release];
[iden release];
[address release];
}
@end
它工作正常,同时我有一个nsmutablearray,我在其中插入这些名为“favorite”的对象使用这个数组“favorite”我填充了一个tableview并以这种方式使用NSUserDefault保存它:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData* myClassArrayData = [NSKeyedArchiver archivedDataWithRootObject:appDelegate.favorite];
[defaults setObject:myClassArrayData forKey:@"favorite"];
当我第二次打开我的应用程序并显示我的表格视图时,一切正常,但是当我尝试删除此表格视图的一行时,我崩溃了……原因是类对象中的 dealloc 方法。
如果我评论这些方法:
//- (void) dealloc{
// [super dealloc];
// [name release];
// [iden release];
// [address release];
//}
我没有崩溃,它工作正常,这种情况的解决方案是什么?我应该评论 dealloc 方法吗?