0

私はiCloudストレージの比較的初心者であり、次のアプリを作成する前に、何が良いかについていくつか意見を聞きたいと思いました。

このアプリは、文字列の配列だけを含む多くのNSDictionariesを格納する必要があります。365個の辞書(1年の各日に1つ)があり、それぞれに小さな文字列を含む少なくとも8つの配列があります。このデータ型はKey-Valueに格納できることは承知していますが、それが1MBの制限を超えるかどうかを判断する経験はありません。

だから私の質問は、上記のシナリオでは、icloudでKey-Valueまたはドキュメントストレージを使用する必要がありますか?

ありがとう。

4

2 に答える 2

2

上限を超える可能性がある場合は、辞書をPLISTファイルまたはコアデータに保存することを検討する必要があります。

PLISTファイルを使用するとします。ドキュメントディレクトリに保存されているファイルに辞書を書き込むことができます。次に、以下のコードを使用して、PLISTファイルをドキュメントディレクトリからiCloudに移動すると、他のデバイスと同期されます。

アプリがiCloudにPLISTファイルの更新バージョンがあることを検出したら(iCloudでファイルの変更日を確認し、ローカルに保存されているファイルよりも新しいかどうかを確認できます)、iCloudからコピーしてドキュメントに配置しますディレクトリ。

//find the URL of your app's ubiquitous container
//setting URLForUbiquityContainerIdentifier to nil returns the URL for the first ubiquitous container in the list in your app's entitlements, you can replace nil with a string
self.ubiquitousURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];

//you may want to update self.ubiquitousURL to the documents folder in the ubiquitous container
//self.ubiquitousURL = [self.ubiquitousURL URLByAppendingPathComponent:@"Documents"];

//place the PLIST in iCloud
[[NSFileManager defaultManager] setUbiquitous:YES itemAtURL:plistURL destinationURL:[self.ubiquitousURL URLByAppendingPathComponent:@"file.plist"] error:NULL];

//you have detected there is a new file in iCloud and want to copy it to the documents directory
[[NSFileManager defaultManager] startDownloadingUbiquitousItemAtURL:[self.ubiquitousURL URLByAppendingPathComponent:@"file.plist"] error:NULL];
[[NSFileManager defaultManager] copyItemAtURL:[self.ubiquitousURL URLByAppendingPathComponent:@"file.plist"] toURL:plistURL error:NULL];

self.ubiquitousURLiCloudディレクトリのURLです。plistURLドキュメントディレクトリ内のPLISTファイルのURLです。

于 2012-12-02T20:44:52.533 に答える
0

ここにはたくさんのオプションがあります。アプリのDocumentsディレクトリを使用して、PLIST、SQLiteデータベースを保存できます。さらに、CoreDataを使用することもできます。これらのいずれかを実際に使用しても、後でiCloudを統合することができます。また、iCloudを使用するかどうかに関係なく、上記の提案は最悪から最高の順に並べられています。PListは確かに最も簡単でしょう。

Core DataとiCloudについて詳しく知りたい場合は、iTunesUで無料で入手できるStanfordのCS193Pコースを強くお勧めします。

于 2012-12-02T19:47:21.257 に答える