【问题标题】:Comparing strings in IF statements: unrecognised selector sent to instance比较 IF 语句中的字符串:无法识别的选择器发送到实例
【发布时间】:2011-01-05 17:09:37
【问题描述】:

在我的代码中,我需要比较两个字符串以查看它们是否相等。如果是,则需要执行功能。其中一个字符串只是一个@"someString",另一个是对象的一部分。

if ([[[mine metal] stringValue] isEqualToString:@"Gold"])
{
 //some function
}

但是,当我这样做时会有一些并发症。首先,它给了我一个警告:NSString 可能无法响应 -stringValue。当我运行应用程序时,它在 if 语句中退出:控制台报告“-[NSCFString stringValue] : unrecognized selector sent to instance”。 mine.metal 是通过数组中的快速枚举循环定义的; metal 属性被定义为一个 NSString,并且 NSLog 能够显示这个字符串。我还缺少什么?

【问题讨论】:

    标签: objective-c iphone-sdk-3.0 nsstring if-statement


    【解决方案1】:

    编译器警告和随后的运行时错误都会告诉您问题所在。

    [mine metal] 返回一个 NSString。 NSString 没有名为 stringValue 的方法。

    如果 [mine metal] 确实返回了 NSString,那么您可以这样做:

    if ([[mine metal] isEqualToString:@"Gold"])
    {
      //some function
    }
    

    【讨论】:

      猜你喜欢
      • 2020-10-28
      • 1970-01-01
      • 1970-01-01
      • 2019-08-28
      • 2012-07-24
      相关资源
      最近更新 更多