1. 程式人生 > >iOS 沙盒儲存

iOS 沙盒儲存

NSString*str=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; 
NSString*path=[str stringByAppendingPathComponent:@"account.plist"];
 
 
//1.
 [responseObject writeToFile:path atomically:YES];

//2.將一個物件寫入沙盒 需要用到一個NSKeyedArchiver 自定義物件的儲存必須用這個
//注:改物件要遵循NSCoding

 [NSKeyedArchiver archiveRootObject:model toFile:path];

//  在物件中重寫encodeWithCoder:(NSCoder*)aCoder 方法,目的是告訴編譯器把哪些屬性存入沙盒
-(void)encodeWithCoder:(NSCoder *)aCoder
{
    [encoder encodeInt:self.uid forKey:@"uid"];
    [encoder encodeObject:self.name forKey:@"name
"]; [encoder encodeObject:self.tel forKey:@"tel"];
}
 
 
// 反歸檔 的時候會呼叫這個方法  解檔
-(instancetype)initWithCoder:(NSCoder *)decoder
{
    if (self=[super init]) {
        self.uid=[decoder decodeIntForKey:@"uid"];
        self.name=[decoder decodeObjectForKey:@"name"];
        self.tel=[decoder decodeObjectForKey:@"
tel"]; self.birthday=[decoder decodeObjectForKey:@"birthday"]; } return self; }