Objective-c – iOS 5:使NSString类别包括NSCFConstantString?
发布时间:2020-12-16 03:25:07 所属栏目:百科 来源:网络整理
导读:我有一个NSString类别类(NSString URLEncoding.h). 我正在运行和未知的选择器崩溃,因为我调用category方法的字符串已经被iOS优化为NSCFConstantString. -[__NSCFConstantString URLEncodedString]: unrecognized selector sent to instance 0x290174 我从iOS
我有一个NSString类别类(NSString URLEncoding.h).
我正在运行和未知的选择器崩溃,因为我调用category方法的字符串已经被iOS优化为NSCFConstantString. -[__NSCFConstantString URLEncodedString]: unrecognized selector sent to instance 0x290174 我从iOS 5中了解了NSCFConstantString与NSCFString优化: 有人知道我如何获得NSString类别包括Constant字符串,甚至强制var为NSString / NSCFString而不是NSCFConstantString? 干杯, -编辑- >链接器标志-ObjC -all_load都已经实现了 我正在向ShareKit 2.0添加一个共享服务 标题: @interface NSString (OAURLEncodingAdditions) - (NSString *)URLEncodedString; 执行: @implementation NSString (OAURLEncodingAdditions) - (NSString *)URLEncodedString { NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)self,NULL,CFSTR("!*'();:@&=+$,/?%#[]"),kCFStringEncodingUTF8); [result autorelease]; return result; } 解决方法
链接器有一个问题,可能导致其死码剥离完全省略只包含obj-c类别的任何对象文件(否则未被引用).理论上将-ObjC标志传递给链接器应该会解决这个问题,但这似乎并不总是起作用.您可以通过提供-all_load链接器标志来解决此问题,这将导致链接器始终链接到所有对象文件中.
请注意,如果您的类别是您在某个地方包含的子项目或库的一部分,则可能必须在父项目上设置-all_load. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |