1
我想初始化一個NSString
。我嘗試了initWithString:
,但這變得無效,因爲NSString
變成了NSPlaceholderString
。我切換到UTF8string
,但它返回一個空值。下面創建NSString結果爲空
代碼:
- (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);
}
你爲什麼以這樣一種奇怪的方式做這件事?你爲什麼不簡單地用'NSString * s = @「AAA」替換上述所有內容;'? – rmaddy
'NSPlaceholderString'有什麼問題? – Sulthan
這不是用這種做法創建字符串 –