iOS 5: NSString-Kategorie NSCFConstantString einschließen lassen?
ich habe einNSString
Kategorie Klasse (NSString+URLEncoding.h
). Ich stoße auf einen unbekannten Selektorabsturz, weil die Zeichenfolge, die ich als Kategoriemethode bezeichne, in eine optimiert wurdeNSCFConstantString
von iOS.
-[__NSCFConstantString URLEncodedString]: unrecognized selector sent to instance 0x290174
Ich habe von dem gelerntNSCFConstantString
gegenNSCFString
Optimierungen in iOS 5 von:http://www.cocoanetics.com/2012/03/beware-of-nsstring-optimizations/
Weiß jemand, wie ich die NSString-Kategorie dazu bringen kann, die Konstanten-Zeichenfolgen einzuschließen, oder sogar die Var zu erzwingen, eine zu sein?NSString/NSCFString
und nicht einNSCFConstantString
?
Prost, Z
-bearbeiten-
Linker-Flags-ObjC -all_load
sind beide bereits implementiertNSString + URLEncoding.m ist in den Kompilierungsquellen des Ziels enthaltenNSString + URLEncoding.m implementiert die URLEncodedString-Methode.Auf Zombies überprüft.Ich füge ShareKit 2.0 einen Freigabedienst hinzu
Header:
@interface NSString (OAURLEncodingAdditions)
- (NSString *)URLEncodedString;
Implementierung:
@implementation NSString (OAURLEncodingAdditions)
- (NSString *)URLEncodedString
{
NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)self,
NULL,
CFSTR("!*'();:@&=+$,/?%#[]"),
kCFStringEncodingUTF8);
[result autorelease];
return result;
}