2011-12-21 8 views
-1

私はセッターメソッドを持っています。私はファーストクラスから値を設定して 私はセカンドクラスで自分の価値を得ることができます。しかし、その二重の値を別のメソッドに呼び出すと、ゼロを示します。なぜこれが起こっていますか?
ここに私のコードです。私はここに値を取得することができる午前セッターで :iphoneでセッターメソッドから二重取得を割り当てる方法

-(void)baseValue{ 
    Advanced *advace=[[Advanced alloc]init]; 
    double myDouble=([textfield0.text doubleValue]); 
    [advace setbasic:myDouble]; 
} 

はその後、私は私の方法と基本的なdouble値このような同じクラスの別のメソッドを呼び出します:値を設定し

-(void)setbasic:(double)basic1{ 
    basic = basic1; 
    NSLog(@"setbasic: %f",basic); 
    //console output 
    //setbasic: 104234.000000 
} 

-(void)calculate{ 
    //here is the problem i can't get basic value 
    NSLog(@"calculatesetbasic: %f",basic); 
    //console output 
    //basic: 0.0000 
} 

ここでは0が得られます。
私はこのようなメソッドの両方を呼び出す:私はあなたの問題は新しい高度を作成していると思う

->Pressed gets called. 
    Makes an advanced. 
    Calls baseValue in advanced. 
    ->baseValue gets called. 
     baseValue creates a new advanced 
     retrieves the double. 
     sets the double in the new advance. 
    Calls calculate in advanced. 

:あなたの流れはこのようなものです

:私はそれを参照してくださいどのように

-(IBAction)Pressed: (id) sender{ 
    Advanced *advace=[[Advanced alloc]init];    
    [advace baseValue]; 
    [advace calculate]; 
} 
+0

どのような方法には、どのクラスの内部で住んでいますか? –

+0

@Mats Stijlaart - (void)calculateメソッドここでそのセッター値を取得する必要があります。 –

+0

@MatsStijlaart - (void)calculateメソッドは同じクラスです。ここで私はセッター値を割り当てます。 –

答えて

1

を。あなたはそれを二度作ります。あなたのコントローラーでまず。次に、あなたの高度なメソッド(baseValue)で。

baseValue creates a new advanced 
retrieves the double. 
sets the double in the new advance. 

行います:代わりの

retrieves the double. 
sets the double in the **same** advance. ([self setbasic:value]) 
+0

私はその値を別のメソッドにロードできないdouble値を取得することができます。 –

+0

はい、アプリケーションは2番目のAdvancedオブジェクトを作成せずに動作しますか?そして、あなたの英語について、本当に悪いことをしてください。 '私はdouble値を取得し、その値を別のメソッドに渡すことができます'。 –

+0

はいあなたの右の私の英語は非常にpoor.iあなたの返信に感謝して開発しています。 –

関連する問題