2010-04-10 61 views
0

我想存檔,使用NSKeyedArchiver,NSKeyedUnarchiver,NSCoding(initWithCoder,encodeWithCoder方法)unarchive對象,以便在應用程序終止之前訪問最後一個視圖。存檔/取消存檔在iPhone OS 3.0和2.2.1對象

這適用於OS 3.0及更高版本,但對於OS 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 2010-04-10 12:38:08

+0

@user:如何做你實現了'-encodeWithCoder:'?它也應該調用'[super encodeWithCoder:encoder]'。另外,來自3.0的文件不能在2.2.1上使用。 – kennytm 2010-04-10 12:40:09

+0

我現在得到這個錯誤 - [UIImage encodeWithCoder:]:無法識別的選擇發送到實例0x44d6a0 任何線索? – random 2010-04-10 13:11:43