【问题标题】:Using categories in iOS 8 frameworks在 iOS 8 框架中使用类别
【发布时间】:2014-09-30 13:34:13
【问题描述】:

我正在尝试使用框架在应用程序和扩展程序之间共享一些代码。大多数情况下这是可行的,但我有几个类别似乎无法在扩展中正确加载。例如,我在 NSString 上有一个类别来反转目标字符串,但是当我尝试在扩展中使用该选择器时,我的代码会出现“无法识别的选择器”异常。我尝试添加“-all_load”链接器标志,首先添加到框架,然后添加到扩展,尝试强制加载框架中实现的所有类,但这似乎不起作用。

欢迎提出任何建议...

-大卫

【问题讨论】:

    标签: objective-c ios8 xcode6 ios8-extension


    【解决方案1】:

    如果我没记错的话,您需要在使用您的库/框架的父项目中的 其他链接器标志 中设置 -ObjC。 -all_load 被用来修复 -ObjC 中的一个错误,现在不再需要了。

    【讨论】:

    • 这似乎也不起作用:-(。我有一个简单的操作扩展,主要由 Xcode 6 向导自动生成,我尝试从中访问框架中包含的 NSString 类别选择器. 我可以在主应用程序中正确调用选择器,但是从扩展程序调用时,进程会陷入“无法识别的选择器”异常。
    • 尝试了其他方法,遗憾的是也不起作用。添加了一个用 __attribute__((constructor)) 标记的函数,它应该确保在加载框架/dylib 时调用它。在主应用程序中,我看到来自函数的日志消息,但在扩展程序中没有任何内容...
    猜你喜欢
    • 2016-01-07
    • 2015-03-08
    • 2014-11-23
    • 1970-01-01
    • 2014-11-07
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    • 2016-11-23
    相关资源
    最近更新 更多