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

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

ios - NSUserdefaults または coredata にデータを保存しますか?

  1. アプリに辞書を保存する必要があります。その有効期間は、NSUserDefaults に保存されているデータの有効期間と同じである必要があります。

  2. 達成する方法はいくつかありますが、私はcore dataNSKeyedArchieverおよび を考えていNSUserDefaultsます。

  3. 私はこの情報を頻繁に更新する予定です。また、辞書は大きなデータにはなりません

  4. 私の質問は、どの方法が最適ですか? NSUserDefault からの保存と取得はコストのかかる操作であるためです。

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

objective-c - 未知のオブジェクトを解凍する方法は?

classA2 つのオブジェクト クラス (と)に基づいて iPad 用の 2 つのアプリを作成しましたclassB

classAでファイルにシリアル化しましたNSKeyedArchiver(その後、メールに添付されました)。他のアプリケーションのすべてのヘッダーを含めずに、classAを使用する他のアプリでオブジェクトを解凍したいと考えています。classB

問題: NSKeyedUnarchiver を使用して iPad ファイル システム (メールの添付ファイル) からオブジェクトをロードすると、関数はエラー (「クラスが認識されません」) を返します。

私が試したこと: これらの箇条書きはどれもうまくいきません....a)クラスタイプを(文字列として)チェックし、objectAをキャストします。b) objectA の .h 定義を他のアプリに含める。

質問: オブジェクトを汎用 ID オブジェクトにアーカイブ解除する方法はありますか? 次に、たとえば次のように呼び出すパラメーターを設定します。

関数の名前と設定するパラメーターの名前を知っているとしたら?

0 投票する
5 に答える
10620 参照

ios - 元のクラスが利用できない場合、オブジェクトをデコードするにはどうすればよいですか?

カスタム オブジェクトをアプリの iCloud Docs フォルダーにファイルとして保存する iOS 7 アプリケーションがあります。このために、NSCoding プロトコルを利用します。

オブジェクトのシリアル化は、アプリの iOS 7 バージョンで完全に機能します。

  1. initWithCoderencodeWithCoder

  2. [NSKeyedArchiver archivedDataWithRootObject:person]

  3. person = NSKeyedUnarchiver unarchiveObjectWithData:(NSData *)theData]

しかし、このアプリを iOS 8 に移行する必要があり、このクラスは迅速にコーディングされ、この新しい iOS 8 バージョンのアプリ用に「名前が変更」されます。

オブジェクトを解凍しようとすると、次のエラーが発生しました。

Swift クラス 'PersonOldVersion' の名前を元のクラス名 ('Person') に変更しようとしましたが、それでも失敗します。

元のクラスが利用できないオブジェクトをデコードするにはどうすればよいですか?

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

swift - ファイル名から SpriteKit レベルを読み込む

私が作成しているゲームでは、簡単にロードできる多くのカスタム レベルを作成できるようにしたいと考えています。各レベルには、.sks インターフェイス ファイルと独自の SKScene サブクラス .swift ファイルが必要です。 Xコード

現在、これは機能しています:

このようなシーンを作成する場所:

しかし、これは大規模なコレクションでは機能しません。これは、たとえばコレクションのフォルダー内の各レベルを反復処理できないためです。私はこのようなものが必要です

この回答を使用して、このような文字列からクラスを取得しようとしましたが、シーンは Level1 オブジェクトではなく単なる SKScene であるかのように読み込まれました。

今のところ、これで作業しますが、これが最善のアプローチだとは思いません。

簡単にロードできる SKScene サブクラスの大規模なコレクションを、それぞれ独自のインターフェイス ファイルで作成できるようにしたいだけです。

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

ios - NSHomeDirectory() の下にファイルを保持する方法は?

アプリのキャッシュ機能を実装するために使用NSKeyedArchiverしています。NSKeyedUnarchiver

アプリを起動するたびにキャッシュ ファイルをロードするために、キャッシュ ファイルを に保存しますNSHomeDirectory()。コード (C 関数) は次のとおりです。

アプリが実行されているか、バックグラウンド モードからライブに戻っている限り、問題なく動作します。ただし、アプリを終了して再実行すると、キャッシュされたアーカイブ ファイルは削除されます。

アプリが最後に起動されたときに保存されたキャッシュをロードできるように、アーカイブ ファイルを永続化する方法はありますか。

アプリが起動されるたびに、のアプリケーションID部分NSHomeDirectory()が異なることにすでに気付きました。これは私の問題と関係がありますか?