0

以下のコードは、保存ボタンがクリックされてアプリが閉じられたときに整数を保存しますが、これを自動的に行う必要があります... iOSでこれを行うにはどうすればよいですか? アップルのコーディング全体にまったく新しいので、どんな助けも大歓迎です

-(IBAction)SaveNumber:(id)sender{
    [[NSUserDefaults standardUserDefaults] setInteger:Number forKey:@"savenumber"];
}

- (void)viewDidLoad {

    Number = [[NSUserDefaults standardUserDefaults] integerForKey:@"savenumber"];
    ShowSavedNumber.Text = [NSString stringWithFormat:@"%i",Number];

    [super viewDidLoad];
}
4

2 に答える 2

0

問題は、この値をどこに保存しようとするかです。アプリ内の Documents ディレクトリにこの値を保存するファイルがありません。

アプリに任意の値を保存できますが、保存と読み取り、またはサーバー上の URL 経由での保存と読み込みにはファイルを使用する必要があります。file.plist、SqlLight、MySql を使用した json のように。

したがって、最初の簡単な保存は.plist、アプリ内のファイルを使用することです.AppDelegate.mの下で、ファイルが存在するかどうかをディレクトリを確認し、Documentsディレクトリ(唯一の書き込み可能なフォルダー)内にコピーする必要がありますが、その後、方法を学ぶ必要がありますDictionaryMutableDictionaryおよび他のクラスを使用して、同じファイルにロードおよび保存します。チェックのような最初のステップを理解し、.plist を作成し、読み取り、保存するための最初のベースを理解するのを手伝うことができますが、他のことは多くのコードであり、yopu は他のチュートリアルを見る必要があります。

したがって、.plist ファイルを作成し、次のように構造を変更し ます。ここに画像の説明を入力 キーを変更する必要がありますが、ディクショナリにはより多くの文字列値が含まれていることを覚えておいてください。アイテムをさらに追加する場合は、同じルート配列内に他の行を追加する必要があります。

Root = Array
Item0 > some string with value
Item1 > some string with value

アプリケーションの起動時に、このファイルを書き込み可能な Documents フォルダー内にコピーする必要があるため、内部AppDelegate.mで関数を作成します。

- (void)createPlistFile{

    NSError *error;
    NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"yourFile.plist"];

    NSFileManager *fileManager = [NSFileManager defaultManager];

    if (![fileManager fileExistsAtPath: path])
    {
        NSString *bundle = [[NSBundle mainBundle] pathForResource:@"yourFile" ofType:@"plist"];

        [fileManager copyItemAtPath:bundle toPath: path error:&error];
    }

}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {コールの追加の下で:[self createPlistFile];

まず、ファイルがドキュメント フォルダーに存在するかどうかを確認し、存在しない場合、アプリは新しいファイルを作成します。

ここで、アプリ内で新しいファイルを読み取るための標準コードを示します。

あなたのViewControlle.h書き込みで:

@interface ViewController : UIViewController {
    NSMutableArray *loadData;
}

@property (nonatomic, strong) NSMutableArray *loadData;

あなたに戻ってViewController.m書いてください:

@synthesize loadData;

NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSString *plistPath = [documentsDirectory stringByAppendingPathComponent:@"yourFile.plist"];
    NSMutableArray *dataDict = [[NSMutableArray alloc] initWithContentsOfFile:plistPath];
    self.loadData = dataDict;

これで、ドキュメント ディレクトリ内に新しい PLIST ファイルを作成して正しくロードできましたが、保存する必要があります。これは保存するための基本的な方法ですが、そのためのモードは本当に多くあり、ここにすべてを書くことはできません ;)

- (IBAction)save:(id)sender {

    NSMutableDictionary *nr2 = [[NSMutableDictionary alloc] init];
    [nr2 setValue:emittente.text forKey:@"plistKey"];
    [nr2 setValue:link.text forKey:@"plistKey"];
    [nr2 setValue:images.text forKey:@"plistKey"];
    [nr2 setValue:web.text forKey:@"plistKey"];

    [YouMutableDict addObject:nr2];
    [YouMutableDict writeToFile:listFav atomically:YES];
}

はい、投票してください;)

于 2013-06-28T16:25:25.807 に答える