8

キーチェーンからユーザー名/パスワードを取得したいと思います。このために、私はこのガイドに従いました:

シンプルな iPhone キーチェーン アクセス

ただし、この部分は ARC では許可されていません。

NSData *result = nil;    
OSStatus status = SecItemCopyMatching(
                  (CFDictionaryRef)searchDictionary,                                            
                  (CFTypeRef *)&result);

私に何ができる?

4

2 に答える 2

21

ARCはObjective-Cタイプのみを管理します。Core Foundationタイプにキャストする場合は、、またはを使用して、変数の所有者をARCに通知する必要が__bridgeあり__bridge_retainedます__bridge_transfer

ARCでのフリーダイヤルブリッジングに関するAppleの公式ドキュメントは次のとおりです。または、このブログ投稿(フリーダイヤルブリッジングまでスクロールダウン)を参照して、概要を確認してください。

例えば:

NSData *inData = nil;
CFTypeRef inTypeRef = (__bridge CFTypeRef)inData;
OSStatus status = SecItemCopyMatching(
                   (__bridge CFDictionaryRef)searchDictionary, 
                   &inTypeRef);
于 2012-04-20T20:19:15.157 に答える
1
CFTypeRef inData = NULL;
OSStatus status = SecItemCopyMatching(
                   (__bridge CFDictionaryRef)searchDictionary, 
                   & inData);
NSData *data = (__bridge NSData *)inData;
于 2015-12-02T10:03:42.677 に答える