Tengo una clase de categoría NSString
(NSString+URLEncoding.h
). Me estoy encontrando con un bloqueo del selector desconocido, porque la cadena que estoy llamando el método de categoría se ha optimizado en un NSCFConstantString
por iOS.iOS 5: ¿la categoría Make NSString incluye NSCFConstantString?
-[__NSCFConstantString URLEncodedString]: unrecognized selector sent to instance 0x290174
supe de la NSCFConstantString
vs NSCFString
optimizaciones en IOS 5 a partir de: http://www.cocoanetics.com/2012/03/beware-of-nsstring-optimizations/
Hay alguien consciente de lo que puedo conseguir la categoría NSString para incluir las cadenas constantes o incluso forzar al ser var un NSString/NSCFString
y no un NSCFConstantString
?
Cheers, Z
banderasoperación -Editar-
- Linker
-ObjC -all_load
son ambos ya implementados - NSString + URLEncoding.m está incluido en los objetivos compilar fuentes
- NSString + URLEncoding. m implementa el método URLEncodedString.
- Chequeado para zombies.
añado un servicio de intercambio de ShareKit 2.0
cabecera:
@interface NSString (OAURLEncodingAdditions)
- (NSString *)URLEncodedString;
aplicación:
@implementation NSString (OAURLEncodingAdditions)
- (NSString *)URLEncodedString
{
NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)self,
NULL,
CFSTR("!*'();:@&=+$,/?%#[]"),
kCFStringEncodingUTF8);
[result autorelease];
return result;
}
¿está resuelto? si no es así, ¿puedo intentar resolverlo si lo necesita? –
La cosa '__NSCFConstantString' en el blog que vinculó es una pista falsa.El problema en el blog no tiene nada que ver con la creación de subclases y todo tiene que ver con el hecho de que Apple intenta optimizar todas las cadenas vacías para un objeto. Si el único objeto que representa una cadena vacía es un simple 'NSString', el código del blog aún se romperá. – JeremyP