0

作業中の plist のすべてのソース コードを出力する PHP ファイルを作成しました。この方法で、データベースからアプリにデータを正常に取得できます。

ただし、データベースを取得するためにアプリを常にオンラインにしたくないので、ユーザーが plist を更新するタイミングを指定できるようにしたい (「データベースの更新」ボタンを押す)。

plistを取得するための私のコード:

NSURL *url_ = [[NSURL alloc] initWithString:@"http://localhost/~user/plist.php"];
NSArray *data = [NSArray arrayWithContentsOfURL:url_];

これはうまく機能しますが、データベースを使用するためにユーザーがオンラインである必要はありません...

私がやりたいことは、これを単純なローカル plist に置き換えることです。

そして、「データベースの更新」ボタンがクリックされるたびに、URLから新しいplistをダウンロードし、ローカルに保存されたものを置き換えたいと思います。

私の言いたいことを理解していただければ幸いです:)

前もってありがとうマイク

4

2 に答える 2

2

writeToFile:atomicallyファイルを保存するためにできることは、BOOL を返すメソッドを使用して、ファイルが保存されたかどうかを通知することです。

コード例を次に示します。

NSArray* a = [NSArray new]; 
BOOL sucess = [a writeToFile:@"my.plist" atomically:YES];
if (!sucess) {
    NSLog(@"Ups, not saved");
}

その後、ドキュメントパスからファイルをロードできます

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //1  Create a list of paths.
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"my.plist"]; 

NSFileManager *fileManager = [NSFileManager defaultManager];

if ([fileManager fileExistsAtPath: path]) {
    NSarray* a = [NSArray arrayWithContentsOfFile:path];
   }
}

それはおそらくあなたの問題を解決します!

于 2012-08-15T13:06:01.457 に答える
1

次のように、plist データをドキュメント ディレクトリに書き込みます。

  [arrImages writeToFile:@"yourDocDirPathWithPlist" atomically:YES];

plist が作成され、ドキュメント ディレクトリに保存されるようになりました

于 2012-08-15T12:46:40.433 に答える