如何将NSMutable字符串附加到UILabel中

时间:2013-08-14 10:14:03

标签: ios objective-c

这是Stack Overflow的第一个问题。我一直在使用这个网站并使用它的资源来找出我的编程问题的答案,但我担心我找不到我正在寻找的答案时间。

我已经创建了这五个字符串:

//List five items from the book and turn them into strings

//1 Josh the Trucker
NSString *stringJosh = @"Josh the Trucker";

//2 The Witch from the Remote Town
NSString *stringWitch = @"The Witch from the Remote Town";

//3 Accepting the curse rules "Willingly and Knowingly"
NSString *stringRules = @"Accepting the curse rules, --Willingly and Knowingly--";

//4 Josh's time left to live--Five Days Alive Permitted
NSString *stringFiveDays = @"Josh's time left to live--Five Days Alive Permitted";

//5 The Fire Demon Elelmental    
NSString *stringDemon = @"The Fire Demon Elelmental";

然后,我把它们放在一个数组中:

//Create an array of five items from the book
      NSArray *itemsArray = [[NSArray alloc] initWithObjects:
                            stringJosh,
                            stringWitch,
                            stringRules,
                            stringFiveDays,
                            stringDemon,
                            nil];

然后,我创建了这个可变字符串,我需要遍历数组并将项目附加到UIlabel。

 NSMutableString *itemsString = [[NSMutableString alloc] initWithString:
                                  @"itemsArray"];

这是循环,它显示控制台日志中的项目。

for (int i=0; i<5; i++)
{
    NSLog(@"Book Item %d=%@", i, itemsArray[i]);

}

我的问题是,如何将这些项目附加到UIlabel中? 这些功能在我的appledelegate中。

在我的viewDidAppear函数(flipsideViewController)中,我有:

label8.text =""----thats where the looped info needs to go.

我该怎么做? 我觉得我需要将它们放在一起并附加在NSLog应该的位置......但是如何将该信息传递给textlabel?

我希望自己解释一下。

我们还没有做过任何附加示例,我想这是我需要从&#34;野生&#34;

获得答案的地方

这是我所知道的最疯狂的编码环境,所以我希望我能在这里找到方向。

谢谢你看看!

3 个答案:

答案 0 :(得分:4)

一旦你想要在NSArray中连接所有字符串,就可以将它们与单个调用组合在一起(使用你想要的任何分隔符):

NSString *combinedString = [itemsArray componentsJoinedByString:@" "];

如果需要更复杂的逻辑,可以使用NSMutableString在迭代数组时创建所需的结果,即:

NSMutableString *combinedString = [NSMutableString string];
[itemsArray enumerateObjectsUsingBlock:^(NSString *obj, NSUInteger idx, BOOL *stop) {
       [combinedString appendFormat:@"Book Item %d=%@ ", idx, obj];
    }];

另请注意,最好使用快速枚举或块枚举迭代集合,而不是使用基于索引的简单for循环。

答案 1 :(得分:1)

NSMutableString *labelText = [NSMutableString string];
int i = 0;
for (NSString *item in itemsArray)
    [labelText appendFormat:@"Book Item %d=%@\n", i++, item];

label8.text = labelText;

答案 2 :(得分:-1)

做这个

UILabel * mainlabel; mainlabel.text = [origText stringByAppendingString:get];

将您的文本添加到mainlabel .. orig文本是可变字符串,否则在forloop中只需将索引文本中的数组对象附加到for.oplo上的代码行上的label.put