2013-09-17 4 views
1

У меня есть .h и .m реализовать NSCoding, но граф mutableArray объект всегда будет 0 ...IOS NSCoding NSMutableArray

.h

#import <Foundation/Foundation.h> 

@interface Favorite : NSObject <NSCoding> { 
    NSMutableArray *myArray; 
} 
@property (nonatomic, retain) NSMutableArray *myArray; 
@end 

.m

#import "Favorite.h" 

@implementation Favorite 
- (void)dealloc { 
    [myArray release]; 
} 

- (void)encodeWithCoder:(NSCoder *)encoder { 
    [encoder encodeObject:myArray]; 
} 

- (id)initWithCoder:(NSCoder *)decoder { 
    myArray = [[decoder decodeObject] retain]; 
    return self; 
} 
@end 

Я буду использовать этот класс, как

Favorite *fav = [[Favorite alloc] init]; 
fav.myArray = self.anotherArray; 
[fav release]; 

Правильно ли это?

ответ

1

Вам нужно выделить NSMutableArray как это,

myArray=[[NSMutableArray alloc]init]; 

счастливым кодирования

+0

добавить функцию инициализации для Favorite.m еще получить MyArray количество 0, пожалуйста, помогите мне. - (id) init { if (self = [super init]) { NSMutableArray * array = [[NSMutableArray alloc] init]; self.myArray = array; [массив релиз]; } return self; } – Yun

+0

[encoder encodeObject: myArray forKey: @ "myArray"]; то при декодировании myArray = [декодер decodeObjectForKey: @ "myArray"]; ... попробуйте это –

+0

, тогда вам нужно выделить оба массива .. –

Смежные вопросы