objective-c - Xcode 无法识别的选择器实现

标签 objective-c xcode

我在 xcode 中设置了一个 ARC 项目。在那个项目中,我添加了一个非弧静态库。一切正常并构建查找。当我运行该项目时,出现此错误。

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

来自这段代码:

NSString * value = [params objectForKey:key];
[_params setObject:[value encodedURLParameterString] forKey:key];

这是试图调用这个

@implementation NSString (OAURLEncodingAdditions)

- (NSString *)encodedURLParameterString {
    NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                                           (CFStringRef)self,
                                                                           NULL,
                                                                           CFSTR(":/=,!$&'()*+;[]@#?"),
                                                                           kCFStringEncodingUTF8);
    return [result autorelease];
}

@end

错误好像是说找不到这个函数。当然它编译得很好,我可以很好地跳转到定义。字符串值是一个常量字符串,它当然继承自 NSString。这在我从中提取它的另一个项目中工作得很好。它完美地找到了这个功能,所以作为一个 Xcode 新手,我束手无策。

该文件包含在编译源中。没有任何错误,它可以很好地编译和运行其他代码。我似乎遗漏了一小部分,我只是不明白它是什么。如果你能帮忙,请帮忙。

最佳答案

在您的项目中使用 -ObjC 和/或 -all_load 链接器标志。引用:What does the -all_load linker flag do?

关于objective-c - Xcode 无法识别的选择器实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12396185/

相关文章:

objective-c - 使用 OCMock 模拟 block 期望

ios - iOS 14 上的多播网络授权

ios - 无法以编程方式选择表格 View 单元格

iphone - 单击任何UIImage并在Objective-C中打开UIImageView

iphone - 在 xcode 4.2 中添加新目标

iphone - 从文档目录中删除文件类型

xcode - SwiftUI 错误 - 列表更改锁定 UI -(旧标题 : SwiftUI CoreData fetch is very slow)

objective-c - 容器 View Controller 状态栏 iOS 7

ios - 几个本地化但仍然只显示英语

ios - (Swift SpriteKit) 按触摸方向旋转 Sprite