iOS NSCoding NSMutableArray

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

.h

#import <Foundation/Foundation.h>

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

#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];

Это правильно??


person Yun    schedule 17.09.2013    source источник


Ответы (1)


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

myArray=[[NSMutableArray alloc]init];

счастливое кодирование

person mani murugan    schedule 17.09.2013
comment
Я добавляю функцию инициализации в Favorite.m, по-прежнему получаю счетчик myArray 0, пожалуйста, помогите мне. - (id) init { if (self = [super init]) { NSMutableArray *array = [[NSMutableArray alloc] init]; self.myArray = массив; [выпуск массива]; } вернуть себя; } - person Yun; 18.09.2013
comment
[кодер encodeObject: myArray forKey:@myArray]; затем при декодировании myArray = [decoder decodeObjectForKey:@myArray];... попробуйте это - person mani murugan; 18.09.2013
comment
Большое тебе спасибо!! Я написал образец, и он работает!! Я проверю свой код, чтобы выяснить, почему количество массивов всегда равно 0, еще раз спасибо :) - person Yun; 23.09.2013