【问题标题】:[NSCFString stringValue]: unrecognized selector sent to instance[NSCFString stringValue]:发送到实例的无法识别的选择器
【发布时间】:2011-08-23 00:39:50
【问题描述】:

执行以下代码行时,我创建的应用程序崩溃了 其中 c1 是一个整数变量。

NSString *path = c1.stringValue;

在日志中显示以下错误:

-[NSCFString stringValue]: 无法识别的选择器发送到实例 0x5566e80 2011-05-11 14:56:15.813 e-TREND[1552:207] 未捕获的异常 发生!! (NSInvalidArgumentException: -[NSCFString stringValue]: 无法识别的选择器发送到实例 0x5566e80) 2011-05-11 14:56:15.816 e-TREND[1552:207] * 终止应用程序 由于未捕获的异常 'NSInvalidArgumentException',原因: '-[NSCFString 字符串值]: 无法识别的选择器发送到实例 0x5566e80'

如果有人有任何想法解决这个问题,请相应地回答。

【问题讨论】:

    标签: iphone objective-c


    【解决方案1】:

    其中 c1 是一个整数变量

    这是什么意思? c1是怎么声明的?

    如果c1int,那么c1.stringValue 甚至都不会编译。

    点语法仅在对象引用 -- c1 -- 是特定对象引用类型(不是 id)并且该引用 -- 该类 -- 响应方法时才有效。

    所以,你有类似的东西:

    MyThingThatRespondsToStringValue *c1;
    

    然后,您在某处将NSString 的实例分配给导致崩溃的变量。

    【讨论】:

      【解决方案2】:

      请试试这个,

      NSString *path = [NSString stringWithFormat:@"%@",c1];
      

      【讨论】:

      • 如果c1 是一个字符串,为什么要这样做?
      【解决方案3】:

      假设 C1 是NSString 的实例。

      试试

      NSString *path = [NSString stringWithString:c1];
      

      NSString *path = [[NSString alloc] initWithString:c1];
      

      【讨论】:

      • 如果 c1 被声明为 NSString,则 OP 的代码将无法编译。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-28
      • 2012-07-24
      相关资源
      最近更新 更多