からint型に数学的な操作を行うことはできません、私のコードがある:iはNSUserDefaultsに保存されている、整数データを持っているNSUserDefaults
- (IBAction)addButton:(id)sender {
NSInteger oldValue = [[NSUserDefaults standardUserDefaults] integerForKey:@"myValue"];
NSString *string1=[addTextField text];
int add = [string1 floatValue];
int new = globalCalories;
int old=oldValue;
if(recomended.text==[NSString stringWithFormat:@"%i", oldValue]){
**self.day = (int)roundf(old-add);
dayLeft.text=[NSString stringWithFormat:@"%d", oldValue-add];
}**
else
{
self.day=(int)roundf(new-add);
dayLeft.text=[NSString stringWithFormat:@"%d", day];
}
}
私は念のために、ボタンアクションのコードをすべてコピーし、しかし、私はマークをしました大胆なコード列で動作しないように見えます。だから、格納されたデータ(oldValue)で数学演算を行うと仮定しますが、私がプログラムを起動するとき、実際にはそうですが、validValueプログラムの代わりにoldValueが0(有効値ではなく)であると考える。だから、
、それが含まれ、例えば、番号2000、そして私はそれが1500(2000から500)であると仮定し、プログラムを起動し、テキストフィールド500に入力したが、それは-500を示しています。
チェックこの質問:http://stackoverflow.com/questions/4855771/cannot-set-nsuserdefaults-field – Isaac