2013-07-16 4 views
0

Я довольно новичок в Xcode и до сих пор довольно любительский вопрос, это очень актуально. Я родом из VB.NET, и если я хочу, чтобы напечатать MyLabel + MyLabel (x10) я хотел бы использовать следующий код:Использование цикла for для конкатенации строк

for(i=0,i<=10,i++) { 
    mylabel = i; 
    mylabel &= mylabel; 
} 

Я хотел бы сделать это для Xcode, а также ...

то, что я в настоящее время перепишет строку вместо того, чтобы добавить его:

for (int i=0; i<=10; i++) { 
    NSMutableString *lol = 
     [[NSMutableString alloc]initWithFormat:@" Getal: %i \n",i]; 
    [myLabel setStringValue:lol]; 
} 
+2

Очевидно вы совершенно новый, так как никто не научил вас еще, что Xcode является системой развития и Objective-C является языком, который вы (обычно) напишите. –

+0

Используйте '% d', а не'% i'. И вообще вы не используете текст '\ n' в тексте меток. И нет необходимости создавать изменяемую строку, если вы не собираетесь ее изменять. И если myLabel является UILabel, вы устанавливаете его текст с помощью 'setText:'. –

+0

@HotLicks '% d' и'% i' одинаковы при использовании со строковыми форматами. – rmaddy

ответ

2

Если ваша цель заключается в создании строки с 10 копий «Getal: #» в нем, на отдельных строках, вы бы использовать что-то вроде этого:

NSMutableString* result = [NSMutableString stringWithCapacity:150]; 
for (int i = 0; i < 10; i++) { 
    [result appendFormat:@"Getal: %d\n", i]; 
} 
0

Похоже, вы пытаетесь создать список индексов? Попробуйте следующее:

NSMutableString *accumulator = [NSMutableString string]; 
for (int i = 0; i <= 10; i++) { 
    [accumulator appendString:[NSString stringWithFormat:@"%d", i]]; 
} 
myLabel.text = accumulator; 

Если это не совсем то, что вы хотите, возможно, вам это поможет. Или, если бы вы могли привести пример вывода, который вы ищете, кто-то может быть достаточно хорош, чтобы отредактировать это.

+1

Незначительная ошибка - объявить 'accumulator' как' NSNMutableString' вместо 'NSString'. – rmaddy

+0

@rmaddy Хороший улов. – Caleb

-1

Спасибо, теперь я понимаю, что добавление для и как использовать его в правильном направлении!

То, что я придумал был следующий:

[myLabel setStringValue:@""]; 
    for (int i=0; i<=10; i++) { 
    NSMutableString *lol = [[NSMutableString alloc]initWithFormat:@"%@ Getal: %i \n",[myLabel stringValue],i]; 
    [myLabel setStringValue:lol]; 
+0

Какой объект "myLabel" ?? И есть ли какая-либо причина, по которой вы не хотите добавлять к изменяемой строке vs с использованием повторных повторений строк (где изменчивая строка не нужна)? –

+0

Ну, это IBOutlet. Дело в том, что я не знал, как «добавить». Я действительно новичок в языке и пытаюсь найти основы программирования вокруг объективного C, так как я родом из Vb.net, это довольно шок, héhé –

+0

Нет, это не IBOutlet. «IBOutlet» представляет собой аннотацию, размещенную на свойствах, позволяющую различным частям системы разработки знать, что эти свойства должны быть связаны с элементами пользовательского интерфейса. Прямо справа от «IBOutlet» вы увидите тип переменной. Например: 'IBOutlet UILabel * myLabel'. –

Смежные вопросы