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

ios - NSKeyedArchiver が MPMediaItemCollection オブジェクトを適切に保存していないようです

メディア ピッカーで作成した曲のプレイリストを保存しようとしています。Persist a MPMediaItemCollection Object Using NSUserDefaultsで提供されている提案を使用しようとしました。このソリューションでは、NSKeyedArchiver を次のように使用します。

MPMediaItemCollection を取得する必要がある場合は、次の処理が実行されます。

これは最初は機能しているように見えましたが、時間の経過とともに一貫して機能しないことがわかりました. 新しいソフトウェア リリース後にアプリをロードした後、プレイリストの一部のメディア アイテムが破損しているようです。たとえば、次のように、取得した MPMediaItemCollection から曲のタイトルを読み込んで tableView に表示しようとすると、次のようになります。

一部のエントリでは、曲のタイトルはありません。キュー内のこのインデックスで曲のpersistentIDを取得しようとすると、persistentIDがありますが、有効な曲を指していません(おそらく単なるゴミです)。

質問は次のとおりです: すべての起動とソフトウェアのアップグレード (私のアップグレードと iOS のアップグレードの両方) で有効であることを確認できる MPMediaItemCollection を保存することは可能ですか? もしそうなら、どのように?

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

ios - NSUserDefaults + NSCoder オブジェクトによるセグエ

セグエでクラッシュが発生しています -- ブレークポイント:

しかし、デバッガーを「続行」すると、すべてが正常に機能します-アプリはこの行でハングアップしているようです...

私のオブジェクトが NSCoder の NSUserDefaults の一部であることに関係していると思います...

アプリがクラッシュしないようにするにはどうすればよいですか?!

ブレーク ポイント エラーだけでエラー メッセージが表示されない

0 投票する
3 に答える
215 参照

ios - あるView Controllerでオブジェクトをアーカイブし、別のView Controllerでアーカイブ解除する方法は?

可変配列プロパティ「favoritesArray」と NSString プロパティ「name」を持つオブジェクト「School」があります。

「HomeViewController」と「FavoritesTableViewController」の2つのビューコントローラーがあります。

私の HomeViewController では、ボタンがタップされると、このメソッドが呼び出されます。

次に、「FavoritesTableViewController」で、以前にアーカイブした「学校」オブジェクトのアーカイブを解除して、「favoritesArray」にアクセスできるようにします。

「FavoritesTableViewController」でボタンがタップされると、このメソッドが呼び出されます。

ただし、「HomeViewController」にアーカイブされたオブジェクトをアーカイブ解除しなかったことを意味する 0 をログに記録します。

別のView Controllerにアーカイブされたオブジェクトをアンアーカイブするにはどうすればよいですか?

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

nsdate - Xcode - NSDate オブジェクトを含むファイルを読み取る

イベントがトリガーされるたびに、私のアプリはその日付を記録します。

イベントの日付を記録することに成功しました。しかし今、それらを読み返すのに苦労しています。これを試しましたが、アプリがクラッシュします:

NSDate の書き込みごとに 223 バイトかかることに気付きましたが、公式には言及されていません。したがって、ファイル「dates.dat」を解析するために長さとして 223 バイトを使用すると、後で問題が発生するのではないかと心配しています。

値を処理できるように、dates.dat を NSArray に読み込むアイデアはありますか?

前もって感謝します

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

ios - [NSKeyedUnarchiver initForReadingWithData:]: 理解できないアーカイブ (0xffffffff、0xffffffd8、0xffffffff、0xffffffe0、0x0、0x10、0x4a、0x46)

私のアプリでは、myObject を NSData にアーカイブしてから、NSData をアーカイブ解除して myObject を取得します。クラッシュトレース

MyObject には次のプロパティが含まれています。

NSData のアーカイブを解除しようとすると、このクラッシュが発生しました。

NSData ==> OS_dispatch_data (138693 バイト)。

[NSKeyedUnarchiver unarchiveObjectWithData:documentData] を使用してアーカイブを解除し、myobject クラスでこれらのメソッドを実装します。

誰でも私を助けてくれますか?

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

ios - initWithCoder: および NSKeyedUnarchiver に関する問題

現在、アプリにゲーム保存機能を追加しようとしています。最終的な目標は、約 300 個のカスタム オブジェクトを.plistファイルに保存し、後で再度抽出することです。ある程度は前進しましたが、いくつか問題がinitWithCoder:あり、自分のテクニックについても確信が持てません。

次のコードはUIViewController、オブジェクトを保存するために使用されています (例として、2 つのオブジェクトのみを辞書に追加しました)。

これにより、クラスencodeWithCoder:内の関数が2 回正常に呼び出されます。Territory

ディレクトリを調べると、確かにファイルが存在します。さて、私が抱えている問題は次のとおりです。次の関数を実行すると、initWithCoder:関数が正常に 2 回呼び出されます。関数内のログinitWithCoder:は本来あるべきものを出力しますが、 の関数内のログはUIViewController、などをloadContents返します。ただし、ラベルのテキストは正しく設定されています。0null

これを何時間も機能させようとしましたが、役に立ちませんでした。誰かがこれについて何か洞察を持っているなら、私を助けてください。また、保存するための私のテクニックが良いかどうかは完全にはわかりません( を使用しNSMutableDictionaryてオブジェクトへの参照を保存し、1つのファイルに出力できるようにします)?ありがとう!

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

objective-c - 複数のオブジェクトをアーカイブし、オブジェクティブ C のオブジェクトの配列としてアーカイブ解除する

関数 archiveQueue を呼び出して、プログラム全体でさまざまな時点でタイプ MYJSON のオブジェクトを格納していますが、今まで配列に格納していたすべてのものを復元したいと考えています。

以下は、オブジェクトを保存するために使用している関数です。

以下は、オブジェクトを復元するために使用している関数です。

オブジェクトの配列として保存したすべてをどのように解凍すればよいですか?