我有一个NSString类别类(NSString URLEncoding.h).
我正在运行和未知的选择器崩溃,因为我调用category方法的字符串已经被iOS优化为NSCFConstantString.
我正在运行和未知的选择器崩溃,因为我调用category方法的字符串已经被iOS优化为NSCFConstantString.
-[__NSCFConstantString URLEncodedString]: unrecognized selector sent to instance 0x290174
我从iOS 5中了解了NSCFConstantString与NSCFString优化:
http://www.cocoanetics.com/2012/03/beware-of-nsstring-optimizations/
有人知道我如何获得NSString类别包括Constant字符串,甚至强制var为NSString / NSCFString而不是NSCFConstantString?
干杯,
ž
-编辑-
>链接器标志-ObjC -all_load都已经实现了
NSString URLEncoding.m包含在目标编译源中
> NSString URLEncoding.m实现URLEncodedString方法.
>检查僵尸.
我正在向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; }