2017-07-03 60 views
0

我想通過使用狀態恢復和保存技術而不使用故事板而保存Second_view_controller中的First_view_controller對象,但我的應用程序崩潰且無法識別的選擇器實例錯誤。我試圖保留NSString對象它工作正常,但是當我嘗試保留一個對象時,我只能看到錯誤。可能是我沒有做得對,請幫助我。 在此先感謝。恢復對象狀態保存 - 目標c

+0

你能發佈確切的錯誤和相關的代碼嗎? – Willeke

+0

已解決問題我嘗試保存我的自定義對象。 – User

回答

0

在使用自定義的對象,你應該實現有方法初級講座協議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

@用戶如果這個解決方案爲你工作,然後請你請接受這個答案,以便其他人可以知道它。 – SachinVsSachin