3

实际上是否可以调用 NSKeyedArchiver archiveRootObject 并使用数据保护 API 将文件属性设置为 NSFileProtectionComplete 或 NSFileProtectionCompleteUnlessOpen ?

4

1 回答 1

6

首先尝试将对象写入特定位置,在本例中为 docFile(设置为文档目录)。然后将文件属性应用到 docFile。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [paths objectAtIndex: 0];
NSString* docFile = [docDir stringByAppendingPathComponent: @"Somefile.plist"];
NSError* error;    

 if([NSKeyedArchiver archiveRootObject:tempData toFile:docFile]) {

    NSDictionary *fileAttributes = [NSDictionary
                                dictionaryWithObject:NSFileProtectionComplete
                                forKey:NSFileProtectionKey];
    if([[NSFileManager defaultManager] setAttributes:fileAttributes     
                            ofItemAtPath:docFile  error: &error]) {
        NSLog(@"Success");
    }
 else {
   NSLog@(%@", error);
  }
}
于 2012-11-20T18:27:12.450 回答