【发布时间】:2009-12-16 21:35:42
【问题描述】:
有没有办法比较两个对象之间的类名?
喜欢:
NSString *bla = [[NSString alloc] init];
if([bla class] isEqual: NSString])
NSLog(@"success");
不确定我的语法是否正确。
【问题讨论】:
标签: objective-c class comparison object
有没有办法比较两个对象之间的类名?
喜欢:
NSString *bla = [[NSString alloc] init];
if([bla class] isEqual: NSString])
NSLog(@"success");
不确定我的语法是否正确。
【问题讨论】:
标签: objective-c class comparison object
正确的语法是:
if ([bla class] == [NSString class])
您还可以使用来自NSObject protocol 的-isMemberOfClass: 或-isKindOfClass: 消息。
【讨论】:
应该这样做:
NSString *bla = [[NSString alloc] init];
if ( [bla isMemberOfClass: [NSString class]] == YES )
NSLog(@"Success");
【讨论】:
== YES 是可选的。没有它可能看起来也更好!
BOOL 两者都不是?
something != NO 会更安全,也不会更困难(当然,这是 if 语句自然执行的检查,因此在这种情况下可以省略)。