2012-02-26 12 views
0

から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を示しています。

+0

チェックこの質問:http://stackoverflow.com/questions/4855771/cannot-set-nsuserdefaults-field – Isaac

答えて

0

問題は==はNSStringのアドレスesと比較されていて、値はありません(多くのSO質問を参照)。文字列を比較するには、isEqualToString:メソッドを使用します。

ただし、この場合には、つまり、数にrecomended.textを変換しdayLeftにintValueメソッドを使用して数字を比較することであっても良いだろう。

+0

私はその番号にlabel.text変換する方法だろうか?教えてください – Necrosoft

+0

recomended.textはどのように設定されていますか? – Mark

+0

recomended.text = [NSString stringWithFormat:@ "%i"、globalCalories]; – Necrosoft

0

あなたはこれを使って、整数にrecommended.textを変換することができます: int型recommendedValue = [recommended.text intValue]; 次に数字を比較します。

+0

はどうもありがとうございましたさ..私はグローバル変数として格納推奨 – Necrosoft

関連する問題