【问题标题】:i am getting warning: incompatible Objective-C types assigning 'struct NSString *', expected 'struct NSMutableString *'我收到警告:分配'struct NSString *'的不兼容的Objective-C类型,预期'struct NSMutableString *'
【发布时间】:2010-08-05 10:56:09
【问题描述】:

我收到警告:不兼容的 Objective-C 类型分配'struct NSString *',预期在此行上'struct NSMutableString *':-

 Value = [Value stringByAppendingString:str];

我将 Value 声明为

 NSMutableString* Value;

如何解决这个问题?

【问题讨论】:

    标签: iphone cocoa cocoa-touch ipad


    【解决方案1】:

    使用NSMutableString,您可以(并且应该)执行以下操作:

    [Value appendString:str];
    

    -stringByAppendingString 确实会返回 NSString 实例,即使它是在 NSMutableString 上调用的,并且将其转换回 mutable 会导致性能开销和代码可读性变差。

    附:另请注意,在 Objective-C 风格指南中,变量名应以小写开头。

    【讨论】:

    • “空值没有被忽略,因为它应该是”我得到的错误。
    • Tauquir: appendString: 不返回任何内容; NSMutableString 通过附加到自身来响应该消息。这就是stringByAppendingString:(适用于任何字符串;不修改现有字符串;返回新字符串)和appendString:(仅适用于可变字符串;修改现有字符串;不返回任何内容)之间的区别。
    猜你喜欢
    • 1970-01-01
    • 2021-02-10
    • 1970-01-01
    • 2021-01-17
    • 2023-04-07
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 2011-04-20
    相关资源
    最近更新 更多