2017-07-03 55 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