我有一个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方法.
>检查僵尸.
标题:
@interface Nsstring (OAURLEncodingAdditions) - (Nsstring *)URLEncodedString;
执行:
@implementation Nsstring (OAURLEncodingAdditions) - (Nsstring *)URLEncodedString { Nsstring *result = (Nsstring *)CFURLCreateStringByAddingPercentEscapes(kcfAllocatorDefault,(CFStringRef)self,NULL,CFSTR("!*'();:@&=+$,/?%#[]"),kcfStringEncodingUTF8); [result autorelease]; return result; }