0

値に特定の $ レートを掛ける計算機があります。ユーザーは $ レートを編集でき、その値はユーザーが入力したレートで乗算されます。これが私のコードです:

    - (IBAction)edit
    {


        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Edit New Amount"
                                                        message:@"Enter new rate"
                                                       delegate:self
                                              cancelButtonTitle:@"Cancel"
                                              otherButtonTitles:@"Ok", nil];


        alert.alertViewStyle = UIAlertViewStylePlainTextInput;
        [[alert textFieldAtIndex:0] setKeyboardType:UIKeyboardTypeNumberPad];

        [alert show];



    }

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
    {
        if (buttonIndex != alertView.cancelButtonIndex) {

    UITextField *field = [alertView textFieldAtIndex:0];
    field.placeholder = @"Enter New Rate";

    NSCharacterSet * set = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789."] invertedSet];

            if ([field.text rangeOfCharacterFromSet:set].location != NSNotFound)
            {


                UIAlertView *errorAlert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Only numbers are allowed in this field."delegate:self cancelButtonTitle:@"OK."otherButtonTitles:nil];
                [errorAlert show];

                rate.text=@"";
            }
            else
            {

            rate.text = field.text;
            }
    }

else
{
    //Cancel
}
}

ただし、アプリを閉じて再起動すると、ユーザーが入力した新しいレートではなく、古いレートが表示されます。ユーザーが入力した新しいレートを保存して、再起動してもアプリ内に保持されるようにするにはどうすればよいですか?

4

2 に答える 2

0

アプリを閉じた後も値を保持したい場合は、ファイル システムのどこかに保存する必要があります。最も簡単で便利な方法は、NSUserDefaults を使用することです。

//Storing in user defaults
[[NSUserDefaults standardUserDefaults] setObject:field.text forKey:RATE_KEY];
[[NSUserDefaults standardUserDefaults] synchronize];

//Retrieving (possibly in app start or viewdidload)
self.rate.text = [[NSUserDefaults standardUserDefaults] objectForKey:RATE_KEY];

NSUserDefaults の使用に関する 1 つの注意点は、すべてのオブジェクト タイプの格納をサポートするわけではなく、NSString、NSArray、NSNumber などおよびプリミティブ タイプをサポートすることです。コードで NSStrings を使用したので、文字列としてデフォルトに保存できると思いました。

于 2013-04-27T22:41:42.360 に答える