問題タブ [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.

0 投票する
1 に答える
34 参照

ios - UserDefaults に OpaquePointer タイプを格納する

Xcode 12 と Swift 5 環境で iOS アプリケーションを構築しています。

ビューが消える前 (またはアプリが閉じる前) に OpaquePointer 型の変数 (以下のコードでは「self.loggers」) を保存し、ビューが表示されたとき (アプリの実行時) にそれを取得する必要があります。以下のように UserDefault を使用しようとしましたが、

ただし、NSKeyedArchiver はそのような型のエンコードに失敗しました。その後、変数をラップするクラスを作りました。

そして私のコードを次のように変更しました

ただし、これにより、NSKeyedArchiver.archivedData が呼び出されたときに SIGABRT が返されます。UserDefaults に Opaquepointer タイプを格納する方法はありますか? そうでない場合、コアデータを使用してこの問題を解決できますか?

ありがとうございました。

0 投票する
0 に答える
30 参照

llvm - LLVM は不透明な型の違いを気にしますか?

https://llvm.org/docs/LangRef.html#opaque-structure-typesによると

不透明な構造型は、本体が指定されていない構造型を表すために使用されます。これは、(たとえば) 前方宣言された構造体の C の概念に対応します。名前付き (%X) または名前なし (%52) にすることができます。

簡単に思えますが、私が理解しようとしているのはこれです。2 つの不透明な型があるとします。

LLVM は、これらが 2 つの異なるタイプであるという事実を気にしますか? X を Y に置き換えると別のコードが生成されるシナリオはありますか? 考えられるのは、型ベースの別名解析ですが、不透明型を逆参照することはできないので、違いを生む方法がないように見えます。何か不足していますか?