1
NSString
を初期化しようとしています。私はinitWithString:
を試しましたが、NSString
がNSPlaceholderString
になるため無効になります。私はUTF8string
に切り替えましたが、ヌル値を返します。NSStringの結果がNULLになる
以下のコード:
- (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
この練習では文字列を作成していません –