无法识别的选择器发送给类运行时错误

时间:2019-06-14 14:45:04

标签: ios objective-c xcode objective-c-category

我正在使用第三方框架,该框架包含NSData上的类别,并且其中包含静态方法t1.[treatment]。 框架链接良好,代码构建成功。但是调用此方法时,我遇到dataUsingBase64String:运行时错误。

我也尝试过在XCode的unrecognized selector sent to class中添加-ObjC-all_load标志,但是没有运气。

3 个答案:

答案 0 :(得分:0)

我猜您的库是静态链接的。一个常见的问题是类别不包含或链接。您还需要将-all_load添加到使用您的静态库的目标的其他链接器标志中。

还请检查以下与您的问题类似的答案

答案1-NSData Unrecognized selector sent to class

答案2-Objective-C Category Causing unrecognized selector

答案3-"unrecognized selector sent to instance" to a static library despite ObjC flag

我希望这对您有帮助

答案 1 :(得分:0)

注意:我需要以这种方式添加框架,

Framework Search Paths instead of adding frameworks to "Linked Frameworks and Libraries" section

在这里,即使添加了-Objc-all_load,框架仍然无法加载。

最后,-framework中的OTHER_LINKER_FLAGS帮了我大忙。

有关联机帮助页的信息

-framework name[,suffix]
                 This option tells the linker to search for `name.frame-
                 work/name' the framework search path.  If the optional suffix
                 is specified the framework is first searched for the name
                 with the suffix and then without (e.g. look for `name.frame-
                 work/name_suffix' first, if not there try `name.frame-
                 work/name').

答案 2 :(得分:0)

如果 -Objc 没有生效,你可以尝试从项目中删除你的 Category 并再次将其拖到项目中,并检查 Target 成员资格。