2013-06-24 226 views
0

删除数组对象我这样一个genearl对象:IOS:与崩溃

.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我插入这些对象称为“最喜欢的” 随着这个数组“最喜欢的”我填充tableview,我用NSUserDefault这样保存它:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    NSData* myClassArrayData = [NSKeyedArchiver archivedDataWithRootObject:appDelegate.favorite]; 
    [defaults setObject:myClassArrayData forKey:@"favorite"]; 

当我第二次打开我的应用程序并显示我的tableview时,它都可以,但是当我尝试删除此tableview的一行时,我有一个崩溃...原因是类对象内的dealloc方法。

如果我评论这些方法:

//- (void) dealloc{ 
// [super dealloc]; 
// [name release]; 
// [iden release]; 
// [address release]; 
//} 

我没有崩溃,它做工精细,什么是这种情况的解决方案?我应该评论dealloc方法吗?

回答

4

总是,总是打电话给[super dealloc]最后

在那个笔记上,切换到Automatic Reference Counting,所以你不必再处理了。

+0

+2 ABSolutely CoRREct ...,如果我可以:) –