問題タブ [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 に答える
1181 参照

nscoding - NSSecureCoding は、適切に保存されたオブジェクトに対して nil を返します

私はmacOS 10.15(bigSUr)、XCode 12、iosではなくobjective-cを使用しています。

ドキュメントベースのアプリがあります。カスタムクラス「SHSetupDataModel」(NSObject)のプロパティオブジェクトを含む単純なオブジェクト「SHGlobalAppData」(NSObject)があります。

読み込み時に、initWithCoder は保存された値に対して nil を返します。なんで?

これは実装です:

私は NSSecureCoding を使用しているため、SHSetupDataModel と SHGlobalAppData の両方に適切なクラス メソッドが含まれています。

保存は安全なコーディングで NSDocument 内で行われます

保存方法

保存に関しては、これは SHGlobalAppData のコードです

上記の保存はスムーズに実行されます。テストは問題ありません。

ロードの方法

保存したファイルをロードすると、次の NSDocument メソッドが呼び出されます。

これにより、SHGlobalAppData から initWithCoder メソッドが呼び出されます - ここで nil の結果が得られます

これがnilを返す理由を教えてください。または、より効果的なデバッグに向けて私を導きますか?

0 投票する
2 に答える
108 参照

ios - NSTextAttachment が使用されている場合、NSKeyedUnarchiver を使用して iOS13 で NSAttributedString のアーカイブを解除するとエラーが発生する

NSAttributedStringiOS14 での画像を含むをアーカイブNSTextAttachmentしましたが、iOS13 でのアーカイブ解除に失敗することに気付きました。iOS14では解凍に成功しています。

ログに記録されたエラーは次のとおりです。

それを機能させるオプションはありますか、それとも私はここで運命づけられていますか?

これは、イメージが using に挿入されるNSMutableAttributedString方法NSTextAttachmentです。

これはアーカイブ行です:

これは、NSErrorインスタンスを返すアーカイブ解除行です。

iOS14でインスタンスを作成NSDataし、ファイルに保存してiOS13で読み込みます。これは失敗したときです。