zoukankan      html  css  js  c++  java
  • Category in static library

    我创建了一个category,为NSString类增加一个接口:

    -(void)logMe;

    在静态库内部调用这个接口没有问题。

    但在引用这个静态库的App中使用这个接口:

    NSString * myString = @"cnblogs";
    [myString logMe];

    会报这个错:

    -[__NSCFConstantString logMe]: unrecognized selector sent to instance 0x7c6a0
    *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFConstantString logMe]: unrecognized selector sent to instance 0x7c6a0'

     NSCFConstantString(NSString是个class cluster类,由于初始化myString用的是字符串常量,所以被初始化成NSCFConstantString对象)找不到这个接口。

    为什么呢?如果你想知道真正的原因,请把这个StackoverFlow中的所有问答全看完,注意,要看完所有答案和评论。

    看完了吗?看完后你会有一种感觉,就是没看懂,但好像知道怎么解决问题了,方法是:当使用XCode4.2以上版本时,给App的“other linker flags”加一个“-ObjC”选项。

    WTF!但这根本不算真正解决问题。问题是为什么category会导致这个问题?既然category会导入这种问题,为什么要用它?

  • 相关阅读:
    web--ajax--json
    4.26
    4.25
    4.23
    4.22
    4.20
    4.19
    4.18
    4月问题总结章
    4.17
  • 原文地址:https://www.cnblogs.com/tara/p/2962624.html
Copyright © 2011-2022 走看看