Сохранение NSMutableArray с использованием NSUserDefaults не работает

У меня есть этот изменяемый массив с именем myWallet с его объявлением свойства:

@property (nonatomic, strong) NSMutableArray *myWallet;

Этот массив заполняется картами, которые являются объектами. Я создаю новый экземпляр карты из другого контроллера представления, поэтому я использую метод делегата, чтобы передать эту созданную карту на мой первоначальный контроллер представления, который является контроллером представления таблицы. Ниже показан метод делегата

- (void)addCardViewController:(AddCardViewController *)sender didCreateCard:(Card *)newCard
{
    // insert a new card

    self.myCard = newCard;
    [self.myWallet addObject:self.myCard];

    [self.tableView reloadData];
}

Пока я могу создавать новые экземпляры Card, и когда я это делаю, в моем начальном контроллере представления появляется новая ячейка таблицы (Card Wallet VC ).

Я хочу, чтобы когда пользователь завершил работу с приложением, созданный экземпляр (s )карты, которую он / она ранее создал, по-прежнему появляется при следующем запуске приложения. Поэтому я использовал NSUserDefaults для этого. В приведенном ниже методе я использую NSUserDefaults для сохранения.

- (void)saveMyWallet
{

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    [defaults setObject:self.myWallet forKey:@"myWalletArray"];

    [defaults synchronize];
    NSLog(@"I am saved");
}

Я вызываю этот метод внутри didSelectRowAtIndexPath. Когда я запускаю приложение, затем создаю новый экземпляр карты, щелкаю ячейку таблицы, это появляется в моем журнале.

2012-05-04 14:51:00.900 CardWallet[24998:f803] *** -[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value '("<Card: 0x6aa02f0>")' of class '__NSArrayM'.  
Note that dictionaries and arrays in property lists must also contain only property values.

Что могло быть возможной причиной этого? И можете ли вы предложить мне способы, которыми я могу это сделать.

Заранее спасибо.

7
задан Grauzten 4 May 2012 в 06:54
поделиться