【问题标题】:Using a for loop to concatenate strings使用 for 循环连接字符串
【发布时间】:2013-07-16 00:13:03
【问题描述】:

我对 Xcode 还是很陌生,还有一个非常业余的问题,它非常相关。 我来自 VB.NET,如果我想打印 mylabel + mylabel(x10) 我会使用以下代码:

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];
}

【问题讨论】:

  • 显然你还是个新手,因为还没有人教你 Xcode 是开发系统,而 Objective-C 是你(通常)编写的语言。
  • 使用%d,而不是%i。通常你不会在标签文本中使用\n。如果您不打算更改它,则无需创建可变字符串。如果 myLabel 是 UILabel,则将其文本设置为 setText:
  • @HotLicks %d%i 在用于字符串格式时是相同的。
  • @rmaddy - 我忘记了场景,但在少数情况下&amp;i 不起作用。
  • @HotLicks 谢谢,但我正在尝试你的想法,我必须说它是 Cocoa 中的 IBOutlet,所以我不认为:[myLabel setText:@ ...] 将工作。感谢您的提示,我会记住它们! PS:字符串中的 \n 的替代方法是什么?

标签: objective-c cocoa-touch loops for-loop nsstring


【解决方案1】:

如果您的意图是创建一个包含 10 个“Getal:#”副本的字符串,在不同的行上,您可以使用如下内容:

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

【讨论】:

    【解决方案2】:

    看起来您正在尝试构建索引列表?试试这个:

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

    如果这不是你想要的,也许它会让你开始。或者,如果您可以举一个您正在寻找的输出示例,那么有人可能会很好地编辑它。

    【讨论】:

    • 小错误 - 将 accumulator 声明为 NSNMutableString 而不是 NSString
    【解决方案3】:

    谢谢,现在我明白了 append 的用途以及如何正确使用它!

    我想出的是以下内容:

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

    【讨论】:

    • “myLabel”是什么类型的对象??有什么理由你不想附加到可变字符串而不是使用重复的字符串重新创建(可变字符串是不必要的)?
    • 嗯,它是一个 IBOutlet。问题是,我不知道如何“追加”。我对这门语言真的很陌生,并试图围绕目标 C 找到我的编程基础,因为我来自 Vb.net,这真是令人震惊,héhé
    • 不,它不是 IBOutlet。 “IBOutlet”是放置在属性上的注释,让开发系统的各个部分知道这些属性将连接到 UI 的元素。直接在“IBOutlet”的右侧,您将看到变量的类型。例如:IBOutlet UILabel* myLabel.
    猜你喜欢
    • 2014-08-02
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 2022-06-27
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 1970-01-01
    相关资源
    最近更新 更多