3

実際に NSKeyedArchiver archiveRootObject を呼び出し、ファイル属性を NSFileProtectionComplete または NSFileProtectionCompleteUnlessOpen に設定してデータ保護 API を操作することは可能ですか?

4

1 に答える 1

6

最初に、オブジェクトを特定の場所、この場合はdocFile(これはdocumentsディレクトリに設定されます)に書き込もうとします。次に、ファイル属性を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 に答える