2017-07-03 8 views
0

ストーリーボードを使わずに状態の復元と保存の手法を使ってSecond_view_controllerのFirst_view_controllerのオブジェクトを保存しようとしていますが、認識できないセレクタインスタンスエラーでアプリがクラッシュしています。私はそれがうまく動作するNSStringオブジェクトを保持しようとしましたが、オブジェクトを保持しようとすると、私はエラーだけを見ることができます。私は正しくそれをやっていないかもしれません私は私を助けてください。 ありがとうございます。ステート保存時のオブジェクトの復元 - 目的c

+0

正確なエラーと関連コードを掲載できますか? – Willeke

+0

問題が解決しましたカスタムオブジェクトを保存しようとしました。 – User

答えて

0

カスタムオブジェクトを使用しているとき、あなたはbelowsのようなメソッドを持っているプロトコルNSCoding実装する必要があります。私は間違っていないよ場合

-(void)encodeWithCoder:(NSCoder *)encoder{ 
    [encoder encodeObject:self.state forKey:@"viewState"]; 
} 

- (id)initWithCoder:(NSCoder *)decoder { 
    if (self = [super init]) { 
     self.state = [decoder decodeObjectForKey:@"viewState"]; 
    } 
    return self; 
} 

を、あなたの実装では、この方法を逃したことがあります。

そして、これらのクラスのオブジェクトコードを保存するためには、次のとおりです。

NSArray *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
NSString *file = [documentPath stringByAppendingPathComponent:@"ObjectStateContent.txt"]; 

NSMutableArray *arr=[NSMutableArray array]; 
[arr addObject:self.stateObject];  

[NSKeyedArchiver arr toFile:file]; 

//And for unarchive object 
    NSMutableArray* myArray = [NSKeyedUnarchiver unarchiveObjectWithFile:file]; 

あなたはファイル内のカスタムオブジェクトの保存に非常に明確にする必要があり、または任意の他のストレージは、オブジェクトの状態は、文字列の形式またはJSONなどに保存することができる」ということです。、オブジェクト自体は永続化することはできません "。

+0

サポートありがとう – User

+0

このソリューションはあなたのために働いている@User場合は、他の人がそれを認識することができるようにこの答えを受け入れるように依頼してください。 – SachinVsSachin

関連する問題