問題タブ [nssecurecoding]

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 に答える
369 参照

swift - セットのセキュアコーディング

私のアプリは、カスタム クラスのインスタンスを格納するコア データを使用しますCustomClass
このクラスには多数のプロパティがあり、そのほとんどは標準型ですが、1 つのプロパティはxxx: Set<CustomObject>です。
したがってxcdatamodeld、 は (標準型を持つ他のものの中で) xxxtype の属性を指定しますTransformablexxxですSet<CustomObject>。そのタイプはOptionalで、トランスフォーマーは現在NSSecureUnarchiveFromDataです。
以前は Transformer が指定されていなかったため、デコードは安全ではありませんでした。しかし、安全でないコーディングは将来廃止される予定であるため、Apple は現在、安全なコーディングを使用することを推奨しています。

安全なコーディングを有効にするために、次のことを行い
CustomClassましNSSecureCodingNSCoding
に以下varが追加されましたCustomClass

次にpublic required convenience init?(coder aDecoder: NSCoder) {…}、属性xxxが安全にデコードされるように変更しようとしました。私は代わりにそれを知っています

decodeObject(of:forKey:)ここでofは、デコードするオブジェクトのタイプです。ここでは typeを使用しますSet<CustomObject>
私の問題は、これを定式化する方法がわからないことです:

エラーが発生しますCannot convert value of type 'Set<CustomObject>.Type' to expected argument type '[AnyClass]?' (aka 'Optional<Array<AnyObject.Type>>‘)
どうやらコンパイラはコンパイルされませんでした

代わりに

つまりSet<CustomObject>、単一のタイプとしてではなく、タイプのコレクションとして扱われます。

では、単一の型、つまり のみをデコードするように指定するにはどうすればよいSet<CustomObject>でしょうか?

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

swift - [CKRecordZone.ID: CKServerChangeToken] をエンコード/デコードする方法は?

ID とトークンの辞書をエンコード/デコードしようとしています。しかし、何らかの理由で、デコードでは常に nil が返されます。

直し方?