2012-04-06 12 views
1

私は以下のコードを使用していますが、なぜそれが正しく動作しないのかわかりません。私の論理は正しくないと思います。if/else文の問題iPhone

解決策を探してください。私がやろうとしていますここで何

- (IBAction)fajarButton:(id)sender { 

    name = @"f"; 

    NSLog(@"Selected namaz is Fajar"); 

    [a1 setAlpha:0]; [a2 setAlpha:0]; [a3 setAlpha:0]; [a4 setAlpha:0]; [a5 setAlpha:0]; 

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setTimeZone:[NSTimeZone localTimeZone]]; 
    [dateFormatter setDateFormat:@"EEEE"]; 
    NSString *day = [dateFormatter stringFromDate:[NSDate date]]; 

    NSLog(@"day::: %@", day); 


    if ([day isEqualToString:@"Monday"]) { 

     [fajarButton setUserInteractionEnabled:NO]; 

    } 
    if ([day isEqualToString:@"Tuesday"]) { 

     [fajarButton setUserInteractionEnabled:NO]; 

    } 
    if ([day isEqualToString:@"Wednesday"]) { 

     [fajarButton setUserInteractionEnabled:NO]; 

    } 
    if ([day isEqualToString:@"Thursday"]) { 

     [fajarButton setUserInteractionEnabled:NO]; 

    } 
    if ([day isEqualToString:@"Friday"]) { 

     [fajarButton setUserInteractionEnabled:NO]; 

    } 
    if ([day isEqualToString:@"Saturday"]) { 

     [fajarButton setUserInteractionEnabled:NO]; 

    } 
    if ([day isEqualToString:@"Sunday"]) { 

     [fajarButton setUserInteractionEnabled:NO]; 

    } 
} 

今日は月曜日であり、ユーザが再びそれをクリックするか、いつでもユーザーがクリックしないように、それはこの日の月曜日のために無効にする必要があります後、このボタンは、その後、一度クリックした場合、たとえば、ということですあなたがすでにそれをしていることを警告する必要があります。そして、新しい日が来て、アプリが開始されると、新しい日がもう一度開始されたので、ボタンが有効になり、ユーザーはそれを一度クリックすることができます。そのすべてを達成するための方法

....私はあなたのfriArrayが空であるように多くの問題に

+0

は 'friArray == nil'または空ですか? –

+0

ええ。条件付きになっていないのですか? – danh

+0

質問に今異なるコードを入れます。最初の質問に答えが与えられた後、既存のものを別のコードに変更するよりも、新しい質問を開く方が良いです。 if文でも、常に同じことをします。 if文の使い方は何ですか? – Mario

答えて

5

が見えています。

+0

さて、最初にNSLog(@ "今ここにfriday .... friArray:%@"、friArray)のfriArrayを出力してください。それが空でも無でも、あなたはどこでそれを作ったと思いますか? (あなたの現在のコードでは、friArrayへの参照はまったくありません。) – mackworth

+0

それで、どうしたのですか?あなたはどこでそれを作りますか? – mackworth

+0

これは作成しましたが、空になるようにアイテムを配列に追加しませんでした。あなたは探している文字列でそれを埋める必要があります。 – lnafziger

0

friArrayが空の場合、forループが反復しないため、elseは呼び出されません。 forループの前に空のfriArrayがないか確認してください。

if ([friArray count] ==0) { 
    //do what you do when it's empty 
} 
else { 
    //do your for loop 
} 
+0

thanxマリオ...しかし、それはすべて台無しです。私は私の質問を変えました。私は別の方法でそれをやろうとしています。編集した質問 –

+0

を確認してください。さて、これは別のコードです。最初の問題は解決しましたか?または、コードをダンプしましたが、これは最初に達成したかったことに対する新しいアプローチですか? – Mario

+0

マリオに感謝しています...実際には以前は助けられていませんでした....これは同じ問題を解決する新しいアプローチです。しかし、今私は問題を解決しました。 –