問題タブ [opaque-pointers]
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 - UserDefaults に OpaquePointer タイプを格納する
Xcode 12 と Swift 5 環境で iOS アプリケーションを構築しています。
ビューが消える前 (またはアプリが閉じる前) に OpaquePointer 型の変数 (以下のコードでは「self.loggers」) を保存し、ビューが表示されたとき (アプリの実行時) にそれを取得する必要があります。以下のように UserDefault を使用しようとしましたが、
ただし、NSKeyedArchiver はそのような型のエンコードに失敗しました。その後、変数をラップするクラスを作りました。
そして私のコードを次のように変更しました
ただし、これにより、NSKeyedArchiver.archivedData が呼び出されたときに SIGABRT が返されます。UserDefaults に Opaquepointer タイプを格納する方法はありますか? そうでない場合、コアデータを使用してこの問題を解決できますか?
ありがとうございました。
llvm - LLVM は不透明な型の違いを気にしますか?
https://llvm.org/docs/LangRef.html#opaque-structure-typesによると
不透明な構造型は、本体が指定されていない構造型を表すために使用されます。これは、(たとえば) 前方宣言された構造体の C の概念に対応します。名前付き (%X) または名前なし (%52) にすることができます。
簡単に思えますが、私が理解しようとしているのはこれです。2 つの不透明な型があるとします。
LLVM は、これらが 2 つの異なるタイプであるという事実を気にしますか? X を Y に置き換えると別のコードが生成されるシナリオはありますか? 考えられるのは、型ベースの別名解析ですが、不透明型を逆参照することはできないので、違いを生む方法がないように見えます。何か不足していますか?