我有一個NSString
類別類(NSString+URLEncoding.h
)。 我遇到和未知的選擇器崩潰,因爲我稱爲類別方法的字符串已被iOS優化爲NSCFConstantString
。iOS 5:使NSString類別包括NSCFConstantString?
-[__NSCFConstantString URLEncodedString]: unrecognized selector sent to instance 0x290174
我學到了NSCFConstantString
對比的NSCFString
優化iOS 5中的: http://www.cocoanetics.com/2012/03/beware-of-nsstring-optimizations/
是任何人都知道我怎樣才能得到NSString的類別包括常量字符串,甚至迫使VAR是一個NSString/NSCFString
而不是一個NSCFConstantString
?
乾杯, ž
CNC中
- 連接標誌
-ObjC -all_load
都已經實現了 - 的NSString + URLEncoding.m包括在目標編譯源代碼
- 的NSString + URL編碼。 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;
}
它解決了嗎?如果不是這樣,那麼我可以嘗試解決它,如果你需要? –
您鏈接的博客中的__NSCFConstantString事件是一個紅色鯡魚。博客中的問題與子類無關,與Apple試圖將所有空字符串優化爲一個對象有關。如果一個表示空字符串的對象是一個簡單的'NSString',博客的代碼仍然會被破壞。編輯 – JeremyP