• 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会导入这种问题,为什么要用它?

  • 相关阅读:
    微擎开发文档/微擎执行主流程介绍
    数据库 first
    ThinkPHP CURD 操作
    thinkPHP3.2.3 框架
    THINKPHP 框架的模板技术
    PHP 符号
    CentOS: 网络连接故障排除
    yum grouplist 安装gnome桌面环境
    centos图形界面的开启和关闭
    dk7和jdk8的一些新特性
  • 原文地址:https://www.cnblogs.com/tara/p/2962624.html
Copyright © 2020-2023  润新知