我有一个NSString
类别类 ( NSString+URLEncoding.h
)。我遇到了未知的选择器崩溃,因为我调用类别方法的字符串已被NSCFConstantString
iOS 优化为一个。
-[__NSCFConstantString URLEncodedString]: unrecognized selector sent to instance 0x290174
我从以下网址了解了iOS 5
中的NSCFConstantString
vs.优化:http: //www.cocoanetics.com/2012/03/beware-of-nsstring-optimizations/NSCFString
有谁知道我如何让 NSString 类别包含常量字符串,甚至强制 var 成为 anNSString/NSCFString
而不是 an NSCFConstantString
?
干杯,Z
-编辑-
- 链接器标志
-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;
}