2013-03-27 45 views
-1

我意識到這是一個非常基本的問題,其他帖子似乎沒有幫助,因爲我對此很陌生。我很好奇爲什麼答:我的for循環不會遍歷我的字符串(問題),爲什麼B)它只打印最後一個問題「你的姓氏是什麼?」在我的iOS模擬器上點擊我的目標動作按鈕。我所有的連接都是正確的,顯然如果它的建築物,我的.h中的所有東西都可以。我的iOS應用不會遍歷我的字符串

我很感激幫助!

- (IBAction) question; 
{ 
    for (int i = 0; i < 5; i++) 
    { 
     questionLabel.text = @"Whats your name?"; 
     questionLabel.text = @"Whats your age?"; 
     questionLabel.text = @"Whats your height?"; 
     questionLabel.text = @"Whats your weight?"; 
     questionLabel.text = @"Whats your last name?"; 

    } 
} 
+1

「Xcode不會遍歷我的字符串」 - 這是正確的,Xcode不會對你的字符串做任何事情**。這是for循環。你真的需要得到關於計算機的一些基本概念,還有一些常識,如果你開始「開發」缺乏基本知識的iOS應用程序,這將不會很好。 – 2013-03-27 17:16:21

+1

[動態更新UILabel]的可能副本(http://stackoverflow.com/q/6336991/),[標籤顯示與iPhone應用程序不即時](http://stackoverflow.com/q/6379751),[NSTextField等待循環結束更新](http://stackoverflow.com/q/5829977),[循環更改標籤文本不工作](http://stackoverflow.com/q/6325202),[調用睡眠(5)和更新文本字段不工作](http://stackoverflow.com/q/5834062) – 2013-03-27 17:26:22

回答

1

這些日誌會給你一個確切的想法

- (IBAction) question; 
{ 
    for (int i = 0; i < 5; i++) 
    { 

    NSLog(@"Iteration: %d",i); 

    questionLabel.text = @"Whats your name?"; 
    NSLog(@"%@",questionLabel.text); 

    questionLabel.text = @"Whats your age?"; 
    NSLog(@"%@",questionLabel.text); 

    questionLabel.text = @"Whats your height?"; 
    NSLog(@"%@",questionLabel.text); 

    questionLabel.text = @"Whats your weight?"; 
    NSLog(@"%@",questionLabel.text); 

    questionLabel.text = @"Whats your last name?"; 
    NSLog(@"%@",questionLabel.text); 

} 
} 

在不同的標籤上顯示所有問題,創建不同的UILabel並請寫下面的代碼

- (IBAction) question; 
{ 
    for (int i = 0; i < 5; i++) 
    { 

    NSLog(@"Iteration: %d",i); 

    questionLabel.text = @"Whats your name?"; 
    NSLog(@"%@",questionLabel.text); 

    questionLabel1.text = @"Whats your age?"; 
    NSLog(@"%@",questionLabel1.text); 

    questionLabel2.text = @"Whats your height?"; 
    NSLog(@"%@",questionLabel2.text); 

    questionLabel3.text = @"Whats your weight?"; 
    NSLog(@"%@",questionLabel3.text); 

    questionLabel4.text = @"Whats your last name?"; 
    NSLog(@"%@",questionLabel4.text); 

} 
} 
+0

謝謝。我仍然試圖找出爲什麼當我點擊我的目標操作按鈕時它不會顯示每個問題。它仍然只顯示最後一個問題,我明白爲什麼,但我不知道如何解決它。我已經想出瞭如何使用數組和' - (id)initWithNibName'來做到這一點,但無法弄清楚如何讓按鈕打印每個問題,然後在完成這裏列出的字符串時重新開始。 – 2013-03-28 17:30:55

+0

這個問題很簡單,你首先將questionLabel.text分配爲名稱,然後再將其分配爲Age,所以名稱文本將被替換,並且它將顯示Age,下一行再次將其分配爲高度。 Age文本將被替換,並且它將顯示高度,,,,等等。這些更改中的每一個都會在毫秒內發生。所以你不能看到變化。只有你可以看到「姓氏」。因爲你沒有改變你的標籤後分配姓氏。 – 2013-03-28 17:46:26

+0

我編輯了我的答案,所有的細節:) – 2013-03-28 17:58:05

7

它遍歷你的字符串!它的速度非常快,所有你看到的都是最後一個。如果你想顯示相同的標籤(questionLabel)上的所有問題,請如果你想要寫下面的代碼

- (IBAction) question; 
{ 
    for (int i = 0; i < 5; i++) 
    { 

    NSLog(@"Iteration: %d",i); 

    questionLabel.text = @"Whats your name?"; 
    NSLog(@"%@",questionLabel.text); 

    questionLabel.text = [questionLabel.text stringByAppendingFormat:@"Whats your age?"] ; 
    NSLog(@"%@",questionLabel.text); 

    questionLabel.text = [questionLabel.text stringByAppendingFormat:@"Whats your height?"] ; 
    NSLog(@"%@",questionLabel.text); 

    questionLabel.text = [questionLabel.text stringByAppendingFormat:@"Whats your weight?"] ; 
    NSLog(@"%@",questionLabel.text); 

    questionLabel.text = [questionLabel.text stringByAppendingFormat:@"Whats your last name?"] ; 
    NSLog(@"%@",questionLabel.text); 

} 
} 

+4

我不知道爲什麼,但我不能停止笑:D – 2013-03-27 17:17:20

+0

我知道你知道,這不是完整的解釋:該屬性被設置五次,但只有最後一個實際繪製到屏幕上。 – 2013-03-27 17:28:10

+1

是的,@JoshCaswell,我知道你知道我知道。 :)但是我所說的已經足夠接近事實,讓OP回到正軌。我不認爲他已經準備好了屬性,交易,運行循環和「重繪時刻」了! – matt 2013-03-27 17:37:08