2013-03-27 2 views
-1

Я понимаю, что это очень простой вопрос, и другие сообщения, похоже, не помогли, так как я так новичок в этом. Мне любопытно, почему A.) мой цикл 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), [Loop для изменения текста метки не работает] (http://stackoverflow.com/q/6325202), [Вызов сон (5) и обновление текстового поля не работает] (http://stackoverflow.com/q/5834062) –

ответ

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); 

} 
} 

Если вы хотите отобразить все вопросы на одной этикетке (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); 

} 
} 

Если вы хотите отобразите все вопросы на разных этикетках, создайте разные 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», но не могу понять, как заставить кнопку печатать каждый вопрос, а затем начинать с завершения строк, перечисленных здесь. –

+0

Вопрос прост, вы назначаете questionLabel.text как имя первой, следующей строки, которую вы снова назначаете как Age, поэтому текст названия будет заменен, и на нем отобразится Age, затем следующая строка u, присвоив его как height .. so So текст возраста будет заменен, и он отобразит высоту ,,,, и т. д., каждое из этих изменений произойдет в течение миллисекунд. Так что вы не видите изменений. только вы можете увидеть «фамилию». Потому что u не меняет метку ur после назначенной фамилии. –

+0

Я отредактировал свой ответ со всеми подробностями :) –

7

Это итерация через ваши струны! Это делается так быстро, что все, что вы видите, последнее.

+4

Я не знаю, почему, но я не могу перестать смеяться: D –

+0

Как я знаю, вы знаете, это не полное объяснение: свойство устанавливается пять раз, но только последний на самом деле рисуется на экране. –

+1

Да, @ JoshCaswell, я знаю, что знаю, что знаю. :) Но то, что я сказал, достаточно близко к истине, чтобы вернуть OP в нужное русло. Я не думаю, что он готов к свойствам, транзакциям, циклам цикла и «моменту перерисовки»! – matt