NSKeyedArchiver освобожден без вызова -finishEncoding - PullRequest
0 голосов
/ 24 февраля 2012

В основных данных я установил простую сущность под названием GolferEntity, которая содержит просто golferObject (преобразуемый тип) и playerId (строка).

- (void)addOrUpdateGolfer:(GolferObject *)feedObj
{   
    NSLog(@"In add or update Feed");

// get reference to local (stored) golfer item, create it if needed
Golfer *localGolfer = [self golferForId:[feedObj PlayerId]];
if (localGolfer == nil) {
    localGolfer = (Golfer *)[NSEntityDescription insertNewObjectForEntityForName:@"GolferEntity" inManagedObjectContext:[self managedObjectContext]];
    [localGolfer setPlayerId:[feedObj PlayerId]];
}

// set folder fields
[localGolfer setGolferObj:feedObj];

// apply update
NSError *error;
if (![managedObjectContext save:&error]) {
    NSLog(@"%@", [error localizedDescription]);
    //      return nil;
}
NSLog(@"successfully saved user: %@", [feedObj PlayerId]);
//return localFolder;
}

Код дает мне ошибку во время выполнения, которая гласит: * - [NSKeyedArchiver dealloc]: предупреждение: NSKeyedArchiver освобожден без вызова -finishEncoding. * Завершение приложения из-за необработанного исключения «NSInvalidArgumentException», причина: '- [GolferObject encodeWithCoder:]: нераспознанный селектор, отправленный экземпляру 0x4b7520'

- Нет, где в моем коде я выделил NSKeyedArchiver, так что я предполагаю, что это то, что делается с помощью основных данных? также мой GolferObject не имеет метода encodeWithCoder? Я не знаю, откуда это?

1 Ответ

1 голос
/ 24 декабря 2012

Мне нужно было кодировать перед отправкой в ​​мой пользовательский объект в CoreData. Мне нужно было использовать - (void) encodeWithCoder: (NSCoder *) encoder; и - (id) initWithCoder: (NSCoder *) декодер; методы.

...