我的目标非常简单 - 我正在尝试设置NSString一些测试数据,然后返回类,这应该是NSString.这是我的代码:
NSString* stringer = [NSString stringWithFormat: @"Test"];
NSLog(@"%@", [stringer class]);
Run Code Online (Sandbox Code Playgroud)
日志说这个课程NSCFString不是NSString.这里发生了什么?
我知道Apple警告不要使用它.但鉴于他们的推理,结果远非相关和预期.
这是我的调试输出 - 代码中的结果没有区别 - 下面只是为了简洁:
(lldb) po [@"Hello" isKindOfClass:[NSMutableString class]]
true => A mutable string?
(lldb) po [[@"Hello" mutableCopy] isKindOfClass:[NSMutableString class]]
0x00000001019f3201 => What's that?
(lldb) po [[@"Hello" mutableCopy] isMemberOfClass:[NSMutableString class]]
0x000000010214e400 => What's that?
(lldb) po [@"Hello" isMemberOfClass:[NSMutableString class]]
false => Once again?
Run Code Online (Sandbox Code Playgroud)
除此之外,我删除了所有字符串文字代码并测试了以下内容:
NSMutableString * m = [[NSMutableString alloc] initWithString:@"Hello"];
bool b = [m isKindOfClass:[NSMutableString class]];
NSLog(@"%d", b); --> 1 Expected.
b = [m isKindOfClass:[NSString class]];
NSLog(@"%d", b); --> 1 Expected.
b = [m isMemberOfClass:[NSString …Run Code Online (Sandbox Code Playgroud)