問題タブ [toll-free-bridging]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - Class メソッドから代入すると、戻り値ではなくクラスがバインドされます
私が現在書いているコードの動作に何か奇妙な点があることに気付き、これが起こる原因となるばかげたことをしていないかどうかを確認するためにここに質問すると思いました。
基本的に、変数をクラス メソッドの戻り値に割り当てると、戻り値への参照を保持する変数ではなく、クラスへの参照が保持されます。以下のコードを参照してください。
のメソッド署名を持っている
そして戻る
ご覧のとおり、いくつかのネットワーク インターフェイスの IP アドレスのリストを収集しているため、無料のブリッジングを使用して CoreFoundation オブジェクトを使用しています。
newAddresses
が割り当てられた後newAddresses
、LLDB で配列のクラスを確認すると、次のようになります。
(lldb) po [newAddresses クラス]
MyHost
をどのように使用しているかについての私の仮定が間違ってい__bridge_transfer
ますか? 構成するために使用するすべてのオブジェクトipAddresses
はCFStringRefs
です。
編集:メソッド全体を求められたので、ここにあります!
swift - Swift の文字列、配列、辞書は NSObjects ですか? 構造体を NSObject にできるのはなぜですか?
NSKeyedArchiver.archivedDataWithRootObject(obj)
オブジェクトを に変換するために使用しますNSData
。このarchivedDataWithRootObject(obj)
メソッドでは、そのパラメータがNSObject
に準拠するである必要がありますNSCoding
。
Swift String
、Array
、および をアーカイブしてみDictionary
ましたが、うまくいきました。なので適合だと思いString
ます。NSObject
NSCoding
また、プレイグラウンドでこのコードをチェックして、次のことを確認しString
ましたNSObject
。
しかし、String
(Cmd + クリックで) の定義に移動すると、それString
がstruct
. String
であることを示すコードが見つかりませんNSObject
。
では、なぜ定義で、それがString
であることを示すコードが見つからないのでしょうか? そして、なぜ構造体を にできるのでしょうか?String
NSObject
NSObject
automatic-ref-counting - CFBridgingRelease は、直接割り当てなしで所有権を既存の参照に復元しますか?
次のコードがある場合:
?texture
への呼び出し後、ARC によって再び有効になり、保持されshare_ptr_with_native()
ます。