-4

私はxcodeが初めてで、最初のアプリを作成したばかりです。基本的に、データベースから値を取得する一連のラベルです。先日、インターネットが機能しておらず、それに気付かず、アプリを実行したところラベルが空でした。私がやろうとしているのは、変数データが​​ nil の場合、以前から値を取得することです。値をメモリに入れることについて、チュートリアルで何かを見たと思います。私が求めていることは可能ですか?これが私のコードの一部です:

NSURL *url = [NSURL URLWithString:@"http://myserver.com/GetData.php"];
        NSData *data = [NSData dataWithContentsOfURL:url options:0 error:nil];
4

3 に答える 3

2

はい、あなたがやろうとしていることは「キャッシング」と呼ばれています。これは、画像に対してどのように行うことができるかについてのチュートリアルです。

もし私があなたのコードを変更するなら、私はあなたのサーバーからのデータを " ~/Library/Caches" のどこかにあるファイルに書き出すだろうし、その後の起動時にサーバーが応答しなくなった場合は、そのキャッシュ ファイルから以前のデータをロードするだろう. .

于 2013-07-11T04:19:08.997 に答える
0

.h ファイル内

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
{
    NSData * data;
}
@end

そして、あなたの .m ファイルで

- (void)viewDidLoad
{
    [super viewDidLoad];

   NSURL *url = [NSURL URLWithString:@"http://myserver.com/GetData.php"];
   data = [NSData dataWithContentsOfURL:url options:0 error:nil];
  [self saveToUserDefaults];
    }

DB またはNSUserDefaultsに格納して、userDefault にデータを保存できます。このコードを使用します。

- (void)saveToUserDefaults
{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:data forKey:@"data"];
    [defaults synchronize];
    NSLog(@"Dilip Data saved");
}

そして、そのデータを元に戻したい場合は、このコードを使用してください。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSData *data = [defaults dataForKey:@"data"];
NSLog(@"Dilip Data : %@",data);
于 2013-07-11T04:20:09.083 に答える
0

はい、可能です。このデータをローカルに保存する必要があります。XCode は単なる開発ツールであるため、データは保存されません。ドキュメントディレクトリ内のファイルにデータを保存する必要があります。データベースSQLiteまたは.plistファイルまたはNSUserDefaults.

SQLIte については、いくつかのチュートリアルがあり ます

グーグルでもっと見つけることができます。

.plist http://www.theappcodeblog.com/2011/07/18/iphone-development-tutorial-create-a-plist-programmatically-after-user-action/を使用する場合

NSUserDefaults の場合

[[NSUserDefaults standardUserDefaults] setObject:yourData forKey:@"data"];
[[NSUserDefaults standardUserDefaults] synchronize];

どちらの方法でも、新しい値を受け取ったら古い値を必ず削除してください。何らかの理由で新しい値を取得できない場合は、自分で再修正を試みるか、ローカル ストアから値をフェッチすることができます。

.plist私は一般的に一時的な使用を好みます。データを長期間使用する必要がないため。iOSレベルのストアもNSUserDefaultsあり、大規模に使用することは好みませんが、これが私の好みです. どちらかで行くことができます。

お役に立てれば :)

于 2013-07-11T04:26:59.650 に答える