アプリ内購入を実装しており、すべての製品は非消耗品です。私の意図は、すべての製品識別子のキーチェーンに bool 値を保存し、後で保存された bool 値に従って Core Data の取得を制御することです。
私の質問は: キー/ブール値をキーチェーンに保存するにはどうすればよいですか?
PS: KeyChainItemWrapper を使用しています。
アプリ内購入を実装しており、すべての製品は非消耗品です。私の意図は、すべての製品識別子のキーチェーンに bool 値を保存し、後で保存された bool 値に従って Core Data の取得を制御することです。
私の質問は: キー/ブール値をキーチェーンに保存するにはどうすればよいですか?
PS: KeyChainItemWrapper を使用しています。
私はいくつかのことを理解していません。bool 値をキーチェーンに保存する必要があるのはなぜですか? また、Core Data はどのようにキーチェーンと通信するか、キーチェーンに依存しますか? 質問は少しあいまいです。
キーチェーンのセットアップと通信に使用する属性については、Touch ID とキーチェーンに関する今年の WWDC セッション(または昨年のキーチェーン セッション) を参照してください。また、今年の Apple のサンプル プロジェクトも見てください。
ドキュメントには、使用できるキーとキーチェーンとの通信方法に関する多くの情報が含まれています。
BOOL 値をオブジェクトに変換するNSNumber
特別なメソッドが含まれているため、次の形式で保存します。+ numberWithBool:
[keychainItemWrapper setObject:[NSNumber numberWithBool:YES] forKey:(__bridge id)(kSecAttrIsInvisible)];
そしてフェッチする:
NSNumber *value = [keychainItemWrapper objectForKey:(__bridge id)(kSecAttrIsInvisible)];
BOOL boolValue = [value boolValue];
キーチェーン key のいずれかを使用し、 bool 値を格納するためにこれらがサポートするようにしますkSecAttrIsInvisible
。kSecAttrIsNegative