私は Objective-C でプログラミングを学び始めましたが、C の知識はあまりありません。そのため、iOS 6 でのブリッジ キャスティングは、いまだに少し混乱しています。
シナリオは次のとおりです。
「NSNumber」属性として CoreData に格納されている人物 ABRecordID があります。後で、その人に直接アクセスしたいので、その人のABRecordIDを使用して、ABAddressBookを使用して連絡先情報にアクセスしたいと思います。ABRecordIDがABAddressBookGetPersonWithRecordID
必要であることに気付きました。以下は、コードでキャストを実行する方法です...
address_book = ABAddressBookCreate();
ABRecordID rec_id = (__bridge ABRecordID)person.record_id;
しかし、これはうまくいきませんでしたincompatible types casting 'int' into 'ABRecordID' (aka 'int') with a __bridge cast
。
すでに混乱していますが、ARC タイプと CF タイプの間でキャストをブリッジする適切な方法は何でしょうか?
また、どの場合に(__bridge retained)
代わりに使用する必要があり(__bridge)
ますか?