0
Является ли finishDecoding также обработкой выпуска экземпляра NSKeyedUnarchiver? Он не говорит в Class Reference.Должен ли я освободить после завершения декодирования с помощью NSKeyedUnarchiver?
Является ли finishDecoding также обработкой выпуска экземпляра NSKeyedUnarchiver? Он не говорит в Class Reference.Должен ли я освободить после завершения декодирования с помощью NSKeyedUnarchiver?
Нет, вам придется самому справиться с этим.
Вы можете легко проверить это в Archives and Serializations Programming Guide, посмотрите на примеры, оба метода (finishDecoding
и release
).
Вы правы, спасибо. Проблема, с которой я сталкиваюсь, заключается в том, что при выпуске содержимое в моем NSMutableArray теряется. _connectedSystems = [unarchiver decodeObjectForKey: kSystemsDataKey]; [unarchiver finishDecoding]; EEMSystem * system = [_connectedSystems objectAtIndex: 0]; NSLog (@ "% @", system.name); Это дает мне имя. Однако, если я добавлю [unarchiver release]; после [unarchiver finishDecoding]; Я не работаю. –
@Man of One Way - любопытно, но это не может быть связано с простым вызовом метода 'release'. Я предлагаю вам задать другой вопрос, дающий фрагмент кода, чтобы узнать, что это такое. –
Проблема должна быть, когда я запускаю - (id) initWithCoder: (NSCoder *) aDecoder и передает [aDecoder decodeObjectForKey: kEEMSystemNameKey]; к моей строке. Мне нужно сначала назначить NSString, иначе имя NSString * в моей системе укажет на что-то в архиваторе, которое затем будет отключено после его выпуска. –