После того, как вы выполните один из этих приемов, чтобы переименовать ваш пакет, вы можете начать видеть ошибки.
Если / когда ваш R.java не генерируется должным образом, вы получите много ошибок в вашем проекте, например error: cannot find symbol class R
, а также error: package R does not exist
.
Не забудьте проверить манифест приложения. Имя пакета манифеста должно соответствовать действительному имени пакета. Кажется, R.java генерируется из манифеста приложения и может вызвать эти ошибки, если есть несоответствие.
Не забудьте проверить соответствие атрибута package
в <manifest package="com.yourcompany.coolapp">
Попробуйте следующее:
NSMutableString* theString = [NSMutableString string];
for (int i=0; i<=10;i++){
[theString appendString:[NSString stringWithFormat:@"%i ",i]];
}
label.text = theString;
Поскольку вы используете цикл, будьте осторожны с решениями Тома и Бенджи. Каждый из них создает дополнительный автоматически выпускаемый объект за итерацию. Для небольшого цикла это нормально, но если размер цикла неограничен или если строки большие, это может привести к очень большому всплеску памяти и снижению производительности. В частности, на iPhone это именно тот цикл, который может привести к неожиданным проблемам с памятью из-за кратковременных всплесков памяти.
Следующее решение имеет меньший объем памяти (он также немного быстрее и требует меньше ввода). Обратите внимание на вызов -appendFormat:
, а не -appendString
. Это позволяет избежать создания второй строки, которая будет выброшена. Помните, что в последней строке есть дополнительный пробел в конце, от которого вы, возможно, захотите избавиться. Вы можете исправить это, обработав по-разному первую или последнюю итерацию, или обрезав последнее пространство после цикла.
NSMutableString* theString = [NSMutableString string];
for (int i=0; i<=10;i++){
[theString appendFormat:@"%i ",i];
}
label.text = theString;
Не забудьте [NSArray componentsJoinedByString:]
. В этом случае у вас нет массива NSArray, но в тех случаях, когда он у вас есть, это, вероятно, лучший способ получить то, что вы ищете.
Другой метод без использования NSMutableString:
NSString* theString = @"";
for (int i=0; i<=10;i++){
theString = [theString stringByAppendingFormat:@"%i ",i];
}
label.text = theString;
Вот полная реализация (корректировка ваших диапазонов):
-(IBAction) updateText: (id)sender {
int a[3];
a[0]=1;
a[1]=2;
a[2]=3;
NSString *str = @"";
for (int i=0; i<3;i++)
str = [str stringByAppendingFormat:@"%i ",i];
label.text = str;
}
Вы также можете сделать это так (например, если вы хотите список, разделенный запятыми):
-(IBAction) updateText: (id)sender {
int a[3];
a[0]=1;
a[1]=2;
a[2]=3;
NSMutableArray *arr = [NSMutableArray arrayWithCapacity:3];
for (int i=0; i<3;i++)
[arr addObject:[NSString stringWithFormat:@"%i",i]];
label.text = [arr componentsJoinedByString:@", "];
}
//NSArray *chunks
string = [chunks componentsJoinedByString: @","];