iOS — 通过自定义framework,在调用的时候,里面的类扩展方法不能调用
2017-10-13 16:27
423 查看
Objective-C不会为每一个objc函数生成链接符号,而是会为每一个类生成链接符号。通过category对一个已有的类进行扩展,那么链接器就不知道如何把原代码与category的代码实现关联起来,导致生成的对象无法响应属于category的消息。
解决办法:build settings中的Other Linker Flags添加-Objc选项。这个选项会促使链接器加载库中所有定义了Class和Category的文件。但这些额外的代码会使目标文件变大。但在64位和iOS应用程序中,linker有一个bug,这个bug会导致objc选项无效,无法从静态库中加载只定义了Category的文件 ,这就需要添加-all_load或-force_load选项。
解决办法:build settings中的Other Linker Flags添加-Objc选项。这个选项会促使链接器加载库中所有定义了Class和Category的文件。但这些额外的代码会使目标文件变大。但在64位和iOS应用程序中,linker有一个bug,这个bug会导致objc选项无效,无法从静态库中加载只定义了Category的文件 ,这就需要添加-all_load或-force_load选项。
相关文章推荐
- [iOS]通过xib自定义cell的时候在awakeFromNib方法里面修改view的frame无效
- IOS系列——自定义外部方法供其他类里面的对象调用
- iOS js oc相互调用(JavaScriptCore)---js调用iOS --js里面通过对象调用方法
- C# 实现和调用自定义扩展方法
- flex 中通过 RO 调用一个java写的Bean的时候获得IP地址的方法 .也就是获得session 和 request的方法
- 通过URL调用WebService里面的方法,报“因URL意外地以***结束,请求格式无法识别。”解决方案
- 如何通过反射调用扩展方法?
- ASP.Net访问母版页(MasterPage)控件、属性、方法及母版页中调用内容页,获取用户自定义控件里面的子控件的方法
- sharepoint2010不能通过ip地址或localhost访问组件和自定义内容的解决方法
- iOS键盘弹出的时候会挡住底部的控件,可以通过以下方法将整个UIView上移。
- 如何:实现和调用自定义扩展方法(C# 编程指南)
- 实现和调用自定义扩展方法
- .net ASCX 通过自定义事件调用ASPX中的方法
- 为什么不能从静态的方法里面调用非静态方法,或变量?
- 【PHP扩展开发必备】在PHP扩展中通过C语言调用PHP函数与方法
- 实现和调用自定义扩展方法
- 通过a4j:jsFunction 调用原生的javascript方法,并且共享和传递后台bean里面的变量
- C# 实现和调用自定义扩展方法
- Asp.Net MVC对类HtmlHelper的自定义扩展方法以及如何调用
- sharepoint2010不能通过ip地址或localhost访问组件和自定义内容的解决方法