NSDataWritingFileProtectionCompleteは「OS X v10.8 以降で使用可能」ですが、コードで使用しようとするとコンパイル エラーが発生します。NSData ヘッダーを確認すると、この機能は iOS でのみ使用できることがわかります。
NSDataWritingFileProtectionComplete NS_ENUM_AVAILABLE_IOS(4_0)
私は何か間違っていますか、それともドキュメントが間違っていますか?
NSDataWritingFileProtectionCompleteは「OS X v10.8 以降で使用可能」ですが、コードで使用しようとするとコンパイル エラーが発生します。NSData ヘッダーを確認すると、この機能は iOS でのみ使用できることがわかります。
NSDataWritingFileProtectionComplete NS_ENUM_AVAILABLE_IOS(4_0)
私は何か間違っていますか、それともドキュメントが間違っていますか?
MacOS 10.8 SDK で定義されている列挙型を見ると、次のことがわかります。
typedef NS_OPTIONS(NSUInteger, NSDataWritingOptions) {
NSDataWritingAtomic = 1UL << 0, // Hint to use auxiliary file when saving; equivalent to atomically:YES
NSDataWritingWithoutOverwriting NS_ENUM_AVAILABLE(10_8, 6_0) = 1UL << 1, // Hint to return prevent overwriting an existing file. Cannot be combined with NSDataWritingAtomic.
NSDataWritingFileProtectionNone NS_ENUM_AVAILABLE_IOS(4_0) = 0x10000000,
NSDataWritingFileProtectionComplete NS_ENUM_AVAILABLE_IOS(4_0) = 0x20000000,
" NS_ENUM_AVAILABLE_IOS
" は展開されるマクロです。
#define NS_ENUM_AVAILABLE_IOS(_ios) __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_##_ios)
" __MAC_NA
" ビットは「該当なし」を意味します。これは、ドキュメントが現在間違っていることを意味します。この機能は iOS でのみ使用できます。
これについては、Apple にドキュメンテーション バグを報告する必要があります。