【问题标题】:iOS Error: Assigning to NSMutableString from NSArray object (type 'void')? [closed]iOS 错误:从 NSArray 对象(类型“void”)分配给 NSMutableString? [关闭]
【发布时间】:2012-11-08 21:14:34
【问题描述】:

我似乎无法解决这里出现的错误:“Assigning to 'NSMutableString *__strong' from in compatible type 'void'”。我试图附加的数组字符串值是一个 NSArray 常量。

NSMutableString *reportString     
reportString = [reportString appendString:[reportFieldNames objectAtIndex:index]];

【问题讨论】:

  • 请阅读文档,请...

标签: objective-c ios string-concatenation nsmutablestring


【解决方案1】:

appendString 是一个void 方法;您可能正在寻找

reportString = [NSMutableString string];
[reportString appendString:[reportFieldNames objectAtIndex:index]];

您可以通过将append 与初始化相结合来完全避免:

reportString = [NSMutableString stringWithString:[reportFieldNames objectAtIndex:index]];

请注意,NSString 的另一种附加方法需要赋值:

NSString *str = @"Hello";
str = [str stringByAppendingString:@", world!"];

【讨论】:

  • 或者你也可以NSMutableString *reportString = [reportFieldNames[index] mutableCopy];
  • 对所提供的大多数信息都接受了答案,这意味着对所有人最有帮助。
【解决方案2】:

appendString 已经将一个字符串附加到您将消息发送到的字符串:

[reportString appendString:[reportFieldNames objectAtIndex:index]];

应该够了。请注意,如果您在 Xcode 4.5 中开发,您也可以这样做:

[reportString appendString:reportFieldNames[index]];

【讨论】:

  • 从技术上讲,这不是 Xcode 4.5 技巧,而是“使用 LLVM 4.1 编译器”技巧。 :)
  • @cmac lemme 请注意,此类问题与 Xcode 无关。 Xcode 只是 Clang/GCC 和 iOS SDK 的一个漂亮的包装器。只是一个IDE。它本身不是编译器或开发。无需打开 Xcode 即可轻松编写 iOS 应用程序。
【解决方案3】:

appendString 是一个 void 方法。所以:

NSMutableString *reportString = [[NSMutableString alloc] init];
[reportString appendString:[reportFieldNames objectAtIndex:index]];

【讨论】:

    【解决方案4】:

    NSMutableString 方法appendString: 不返回任何内容,因此您不能为其分配不存在的返回值。这就是编译器试图告诉你的。您要么需要 NSString 和 stringByAppendingString:,要么只想使用 [reportString appendString:[reportFieldNames objectAtIndex:index]]; 而不分配返回值。

    (当然,您需要先创建一个字符串以输入reportString,但为了完整性,我假设您只是将其排除在您的问题之外。)

    【讨论】:

      【解决方案5】:

      试试这个:

      NSMutableString *reportString = [[NSMutableString alloc] init];
      [reportString appendString:[reportFieldNames objectAtIndex:index]];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-07-22
        • 2018-11-12
        • 2016-06-24
        • 2021-02-06
        • 1970-01-01
        • 2019-10-06
        • 2020-06-02
        相关资源
        最近更新 更多