問題タブ [nskeyedunarchiver]
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 - NSUserdefaults または coredata にデータを保存しますか?
アプリに辞書を保存する必要があります。その有効期間は、NSUserDefaults に保存されているデータの有効期間と同じである必要があります。
達成する方法はいくつかありますが、私は
core data
、NSKeyedArchiever
および を考えていNSUserDefaults
ます。私はこの情報を頻繁に更新する予定です。また、辞書は大きなデータにはなりません。
私の質問は、どの方法が最適ですか? NSUserDefault からの保存と取得はコストのかかる操作であるためです。
objective-c - 未知のオブジェクトを解凍する方法は?
classA
2 つのオブジェクト クラス (と)に基づいて iPad 用の 2 つのアプリを作成しましたclassB
。
classA
でファイルにシリアル化しましたNSKeyedArchiver
(その後、メールに添付されました)。他のアプリケーションのすべてのヘッダーを含めずに、classA
を使用する他のアプリでオブジェクトを解凍したいと考えています。classB
問題: NSKeyedUnarchiver を使用して iPad ファイル システム (メールの添付ファイル) からオブジェクトをロードすると、関数はエラー (「クラスが認識されません」) を返します。
私が試したこと: これらの箇条書きはどれもうまくいきません....a)クラスタイプを(文字列として)チェックし、objectAをキャストします。b) objectA の .h 定義を他のアプリに含める。
質問: オブジェクトを汎用 ID オブジェクトにアーカイブ解除する方法はありますか? 次に、たとえば次のように呼び出すパラメーターを設定します。
関数の名前と設定するパラメーターの名前を知っているとしたら?
ios - 元のクラスが利用できない場合、オブジェクトをデコードするにはどうすればよいですか?
カスタム オブジェクトをアプリの iCloud Docs フォルダーにファイルとして保存する iOS 7 アプリケーションがあります。このために、NSCoding プロトコルを利用します。
オブジェクトのシリアル化は、アプリの iOS 7 バージョンで完全に機能します。
initWithCoder
とencodeWithCoder
[NSKeyedArchiver archivedDataWithRootObject:person]
person = NSKeyedUnarchiver unarchiveObjectWithData:(NSData *)theData]
しかし、このアプリを iOS 8 に移行する必要があり、このクラスは迅速にコーディングされ、この新しい iOS 8 バージョンのアプリ用に「名前が変更」されます。
オブジェクトを解凍しようとすると、次のエラーが発生しました。
Swift クラス 'PersonOldVersion' の名前を元のクラス名 ('Person') に変更しようとしましたが、それでも失敗します。
元のクラスが利用できないオブジェクトをデコードするにはどうすればよいですか?
swift - ファイル名から SpriteKit レベルを読み込む
私が作成しているゲームでは、簡単にロードできる多くのカスタム レベルを作成できるようにしたいと考えています。各レベルには、.sks インターフェイス ファイルと独自の SKScene サブクラス .swift ファイルが必要です。
現在、これは機能しています:
このようなシーンを作成する場所:
しかし、これは大規模なコレクションでは機能しません。これは、たとえばコレクションのフォルダー内の各レベルを反復処理できないためです。私はこのようなものが必要です
この回答を使用して、このような文字列からクラスを取得しようとしましたが、シーンは Level1 オブジェクトではなく単なる SKScene であるかのように読み込まれました。
今のところ、これで作業しますが、これが最善のアプローチだとは思いません。
簡単にロードできる SKScene サブクラスの大規模なコレクションを、それぞれ独自のインターフェイス ファイルで作成できるようにしたいだけです。
ios - NSHomeDirectory() の下にファイルを保持する方法は?
アプリのキャッシュ機能を実装するために使用NSKeyedArchiver
しています。NSKeyedUnarchiver
アプリを起動するたびにキャッシュ ファイルをロードするために、キャッシュ ファイルを に保存しますNSHomeDirectory()
。コード (C 関数) は次のとおりです。
アプリが実行されているか、バックグラウンド モードからライブに戻っている限り、問題なく動作します。ただし、アプリを終了して再実行すると、キャッシュされたアーカイブ ファイルは削除されます。
アプリが最後に起動されたときに保存されたキャッシュをロードできるように、アーカイブ ファイルを永続化する方法はありますか。
アプリが起動されるたびに、のアプリケーションID部分NSHomeDirectory()
が異なることにすでに気付きました。これは私の問題と関係がありますか?