相关疑难解决方法(0)

NSString实例将其类报告为NSCFString

我的目标非常简单 - 我正在尝试设置NSString一些测试数据,然后返回类,这应该是NSString.这是我的代码:

NSString* stringer = [NSString stringWithFormat: @"Test"];
NSLog(@"%@", [stringer class]);
Run Code Online (Sandbox Code Playgroud)

日志说这个课程NSCFString不是NSString.这里发生了什么?

cocoa class objective-c nsstring class-cluster

20
推荐指数
2
解决办法
1万
查看次数

为什么isKindOfClass和isMemberOfClass与NSString和NSMutableString一起工作不好?

我知道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)

class objective-c-runtime nsstring nsmutablestring ios

1
推荐指数
1
解决办法
650
查看次数