Appleのエンジニアは、まれにクラッシュするようですが、Apple Engineerは、NSDataオブジェクトの作成時からアプリケーションの最初のバイトを読み取ろうとする間にユーザーがデバイスをロックすると、クラッシュが発生する可能性がありますNSDataオブジェクト。Parse iOS SDKのPFFile.getData()のNSFileProtectionレベルはどのくらいですか?
これは、「完全な」データ保護レベル(NSFileProtectionComplete)を持つファイルをParseがダウンロード/保存していることを意味します。 Parse iOS SDK
let query = PFQuery(className: aClass)
let result = try query.getFirstObject()
guard
let imageObject = result.objectForKey(aKey) as? PFFile,
let imageData = try? imageObject.getData(),
let firstByte = imageData.dataType() // this reads the 1st byte of data
else {
return
}
は、デバイスが起動した後にアンロック/最初のユーザ認証後のファイルへのアクセスを許可するNSFileProtectionCompleteUntilFirstUserAuthentication
を、使用しているようです。
static NSDictionary *_PFFileManagerDefaultDirectoryFileAttributes() {
#if !PF_TARGET_OS_OSX
return @{ NSFileProtectionKey : NSFileProtectionCompleteUntilFirstUserAuthentication };
#else
return nil;
#endif
}
static NSDataWritingOptions _PFFileManagerDefaultDataWritingOptions() {
NSDataWritingOptions options = NSDataWritingAtomic;
#if !PF_TARGET_OS_OSX
options |= NSDataWritingFileProtectionCompleteUntilFirstUserAuthentication;
#endif
return options;
}
@interface PFFileManager()
@property (nonatomic, copy) NSString *applicationIdentifier;
@property (nonatomic, copy) NSString *applicationGroupIdentifier;
@end
@implementation PFFileManager
だから私は、右の同期PFFile.getData()
がNSFileProtectionCompleteUntilFirstUserAuthentication
を使用することを想定していますか?または、データがメモリにロードされ、ファイルにまったく書き込まれないため、ファイル保護はまったく使用されませんか?