Попробуйте настроить интерфейс в соответствии с протоколом NSCoding.
Реализация encodeWithCoder и initWithEncoder.Затем вы можете сериализовать и десериализовать объект в файл или поток.
Затем выполните следующее утверждение:
NSData *data = [NSKeyedarchiver archivedDataWithRootObject:someClassInstance];
или
SomeClass *instance = [NSKeyedUnarchiver unarchiveObjectWithData:data];
Это не 'T ответить на ваш вопрос.Но сделает ваш код более приятным.
Теперь ваш вопрос: ваше приложение не «знает» текущий фрукт.Поскольку loadDataFromDisk находится в области действия экземпляра, переменные экземпляра переопределяются.Другими словами: у вас есть экземпляр, для которого вы будете вызывать метод.Его содержание изменится и второго экземпляра не будет.Если вы хотите, чтобы два экземпляра использовали протокол NSCoding
Если вы хотите, чтобы ваш currentfruit распределялся между несколькими экземплярами, сделайте переменную currentfruit статической.