2010-04-10 3 views
0

Я пытаюсь архивировать, разблокировать объекты, используя NSKeyedArchiver, NSKeyedUnarchiver, NSCoding (initWithCoder, encodeWithCoder методы), чтобы получить доступ к последнему представлению до того, как приложение было прервано.Архивные/unarchive объекты в iPhone OS 3.0 и 2.2.1

Это работает с ОС 3.0 и выше, но для ОС 2.2.1 объекты не имеют аналогов, но при повторном запуске приложения отображается пустой экран.

Это, как я пытался инициализировать мой взгляд:

- (id)initWithCoder:(NSCoder *)decoder{ 
    self = [super init]; 
    if (self != nil) 
    { 
     //my code 
    } 
    return self; 

} 

Я также попытался с помощью метода initWithNibName следующим

- (id)initWithCoder:(NSCoder *)decoder{ 
    self = [super initWithNibName:@"myView" bundle:nil]; 
    if (self != nil) 
    { 
     //my code 
    } 
    return self; 

} 

Но отображается черный экран.

Может ли кто-нибудь помочь?

ответ

1

На самом деле, вы должны вызвать

self = [super initWithCoder:decoder]; 
+0

Это работает для OS 3.0 и выше, но не для OS 2.2.1 Можете ли вы проверить и подтвердить, если это работает для OS 2.2.1 – random

+0

@user: Как сделал вы реализуете '-encodeWithCoder:'? Он также должен также вызвать '[super encodeWithCoder: encoder]'. Кроме того, файл версии 3.0 не может использоваться в версии 2.2.1. – kennytm

+0

Теперь я получаю эту ошибку - [UIImage encodeWithCoder:]: непризнанный селектор отправлен в экземпляр 0x44d6a0 Любые подсказки? – random

Смежные вопросы