我在coreData应用程序中为我的 – (NSPersistentStoreCoordinator *)persistentStoreCoordinator编写了这段代码.我使用xCode的master-detail Application模板来创建应用程序…… 
  
  
 
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
    if (__persistentStoreCoordinator != nil) {
        return __persistentStoreCoordinator;
    }
    NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"Notes2.sqlite"];
    NSError *error = nil;
    __persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedobjectModel:[self managedobjectModel]];
    if (![__persistentStoreCoordinator addPersistentStoreWithType:NSsqliteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
        NSLog(@"Unresolved error %@,%@",error,[error userInfo]);
        abort();
    }    
    Nsstring *urlString = [storeURL absoluteString];
    NSDictionary *fileAttributes = [NSDictionary dictionaryWithObject:NSFileProtectionComplete forKey:NSFileProtectionKey];
    if (![[NSFileManager defaultManager] setAttributes:fileAttributes ofItemAtPath:urlString error:&error]) 
    {
        // Handle error
    }
    return __persistentStoreCoordinator;
} 
 如何测试并知道我的sqlite已打开NSFileProtectionComplete?
我锁定了模拟器,但是当我在Finder中双击文件时,文件仍然可读.
解决方法
 iTunes不会从设备复制文件,除非它有您的密码或设备先前已被信任;这就是它如何解密数据. 
  
 
        在Xcode 8及更早版本中,模拟器使用主机文件系统,macOS当前不支持每个文件加密,就像iOS一样,因此在macOS上你无法在模拟器中测试它.