1
Ich versuche, eine NSString
zu initialisieren. Ich versuchte initWithString:
, aber das wird ungültig, weil die NSString
eine NSPlaceholderString
wird. Ich wechselte zu UTF8string
, aber es gibt einen Nullwert zurück.Erstellen von NSString-Ergebnissen in Null
Code unten:
- (void) test:(NSString*)thing {
id (*p_objc_msgSend)(id p, SEL sel, ...);
id (*p_objc_getClass)(const char *s);
Class class;
p_objc_getClass = objc_getClass;
p_objc_msgSend = objc_msgSend;
NSString *s;
class = (*p_objc_getClass)("NSString");
//SEL init = @selector(initWithString:);
s = (*p_objc_msgSend)(class, @selector(alloc));
s = (*p_objc_msgSend)(s, @selector(initWithUTF8String:), "AAA");
NSLog(@"Value of %@", s);
}
Warum machst du das so bizarr? Warum ersetzen Sie nicht einfach alle oben genannten mit 'NSString * s = @" AAA ";'? – rmaddy
Was ist falsch mit 'NSPlaceholderString'? – Sulthan
Es ist nicht die Zeichenfolge mit dieser Praxis erstellen –