我在 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/