問題タブ [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.
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を返す理由を教えてください。または、より効果的なデバッグに向けて私を導きますか?
ios - NSTextAttachment が使用されている場合、NSKeyedUnarchiver を使用して iOS13 で NSAttributedString のアーカイブを解除するとエラーが発生する
NSAttributedString
iOS14 での画像を含むをアーカイブNSTextAttachment
しましたが、iOS13 でのアーカイブ解除に失敗することに気付きました。iOS14では解凍に成功しています。
ログに記録されたエラーは次のとおりです。
それを機能させるオプションはありますか、それとも私はここで運命づけられていますか?
これは、イメージが using に挿入されるNSMutableAttributedString
方法NSTextAttachment
です。
これはアーカイブ行です:
これは、NSError
インスタンスを返すアーカイブ解除行です。
iOS14でインスタンスを作成NSData
し、ファイルに保存してiOS13で読み込みます。これは失敗したときです。