2011-11-16 73 views
0

仍在學習目標c並出現問題我只是無法弄清楚。我正在嘗試編寫一個應用程序來繪製角度,我有4個文本區域,2個邊和2個角度。用戶可以輸入2個側面的尺寸,應用程序會計算出角度,或者用戶可以輸入1側和角度,應用程序會計算出另一側和角度。在此我搞清楚如何得到這個工作我做了這個代碼的過程:需要Objective-C程序的建議

- (IBAction)calcPressed { 
    float a = ([sideA.text floatValue]/[sideB.text floatValue]); 
    float b = atan(a)*180/3.141592653589; 
    float e = 90 - b; 
    angleA.text = [[NSString alloc] initWithFormat:@"%f", b]; 
    angleB.text = [[NSString alloc] initWithFormat:@"%f", e]; 

採取兩面進入,並計算角度和正常工作。所以現在我需要弄清楚如何允許輸入或者兩面或1個側,1角,所以我想出了這一點:

- (IBAction)calcPressed { 
    float a = ([sideA.text floatValue]); 
    float b = ([sideB.text floatValue]); 
    float c = ([angleA.text floatValue]); 
    float d = ([angleB.text floatValue]); 

    if(angleA.text, angleB.text = @"") { 
     float e = a/b; 

     float f = atan(e)*180/3.141592653589; 
     float g = 90 - f; 
     angleA.text = [[NSString alloc] initWithFormat:@"%f", f]; 
     angleB.text = [[NSString alloc] initWithFormat:@"%f", g]; 
    } else if (sideB.text, angleB.text = @"") { 
     float e = tan(c); 
     b = a/e; 
     d = 90 - c; 
     sideB.text = [[NSString alloc] initWithFormat:@"%f", b]; 
     angleB.text = [[NSString alloc] initWithFormat:@"%f", d]; 
    } 
} 

第一部分工作正常,但第二部分不。就像我說過的,我對此很新穎,我相信有更好的做法,比如可能有更好的方法來分割pi,但是我可以開始工作。任何指針將不勝感激。

+3

你覺得表達式'if(angleA.text,angleB.text = @「」)'是做什麼的? – Jonah

+0

在分割之前,您應該檢查數字是否爲0。 – dasdom

回答

1

更改此

if(angleA.text, angleB.text = @"") { 

if ([angleA.text isEqualToString: @""] && [angleB.text isEqualToString: @""]) { 

和相同的else if部分。

+0

非常感謝你!我知道它必須是相當簡單的東西。是的,我會努力檢查0,但試圖採取步驟,在我進入下一個工作之前,先弄清楚一件事情並理解它。 – mmoore410

+0

如果這解決了你的問題,你可以接受這個答案作爲正確的答案。 – dasdom