在文本标签中显示数组

时间:2014-05-12 02:31:20

标签: ios objective-c arrays

我仍然是Xcode的新手,所以请耐心等待我。无论如何,我在尝试在UILabel中显示数组的全部内容时遇到了一些麻烦。我只需使用代码

即可显示它
wordList.text = [NSString stringWithFormat:@"List of Words:\n %@", listA];

然而,在运行时,标签最终会显示括号和单词上的单词,以及单词周围的引号,以及每个单词之间的行中的结束引号和逗号。例如:

List of Words:
( 
"apple
",
"banana
",
"etc.

虽然我希望单词以自己的行显示,但我不希望括号和右引号和逗号显示在单独的行中。我也希望一起删除括号,引号和逗号,但如果我不能,我不会介意太多。

有人可以解释为什么会这样显示,并帮助我在UILabel中自己正确显示数组中的每个单词吗?

3 个答案:

答案 0 :(得分:6)

使用此:

NSArray *listOfWords = @[@"One", @"Two", @"Three"];
NSString * stringToDisplay = [listOfWords componentsJoinedByString:@"\n"];
wordList.text = stringToDisplay;

将显示:

One
Two
Three

答案 1 :(得分:0)

正在添加括号,引号和逗号,因为提供数组作为格式说明符%@的参数会导致-(NSString *)description方法被发送到数组。 NSArray覆盖NSObject description的实现,并返回一个表示数组内容的字符串,格式为属性列表。 (而不是只返回带有数组内存地址的字符串。)因此,额外的字符。

答案 2 :(得分:-1)

您可以使用此代码

NSArray *listOfWords = [NSArray arrayWithObjects:
                        @"one.",
                        @"two.",
                        nil];

for (NSString *stringToDisplay in matters) 
{
        //frame, setting
        labelFrame.origin.x = 20.0f;
        UILabel *stringToDisplayLabel = [[UILabel alloc] initWithFrame:labelFrame];
        stringToDisplayLabel.backgroundColor = [UIColor clearColor];
        stringToDisplayLabel.font = [UIFont boldSystemFontOfSize:12.0f];
        stringToDisplayLabel.lineBreakMode = NSLineBreakByWordWrapping;
        stringToDisplayLabel.numberOfLines = 0;

        stringToDisplayLabel.textColor = [UIColor whiteColor];
        stringToDisplayLabel.textAlignment = NSTextAlignmentLeft;

        //set up text
        stringToDisplayLabel.text = stringToDisplay;

        //edit frame
        [stringToDisplayLabel sizeToFit];
        labelFrame.origin.y += stringToDisplayLabel.frame.size.height + 10.0f;

        [self.view addSubview:stringToDisplayLabel];
        [matterLabel release];
}