在这种情况下如何识别对象是否是NSString?

时间:2011-11-14 11:27:02

标签: objective-c cocoa

此代码

if ( [currentValue isKindOfClass:NSClassFromString(@"NSString")] ) {
            CBDebug(@"this is a string");
当currentValue的类型为__NSCFString

时,

效果很好

但如果类型为__NSCFConstantString

,则无法识别字符串

我该如何解决? (我在OSX上)

感谢

3 个答案:

答案 0 :(得分:4)

试试这个:

if ( [currentValue isKindOfClass:[NSString class]] ) {    
            CBDebug(@"this is a string");
}

答案 1 :(得分:3)

请尝试以下方法,而不是检查班级的文本字符串:

[myObject isKindOfClass:[NSString class]]

答案 2 :(得分:0)

试试这个[obj isKindOfClass:[NSString class]];
通常,在测试可能无法使用的类名时,您只需要NSClassFromString 注意:在类集群表示的对象上使用isKindOfClass:方法时要小心。由于类集群的性质,您获得的对象可能并不总是您期望的类型。如果接收器某处继承自作为参数传递的类,则isKindOfClass:将返回YES。