iphone – 在Objective-C中获取id的字符串表示

如何获得id对象的最佳字符串表示?

以下是否正确?有更简单的方法吗?

id value;
NSString* valueString = nil;
if ([value isKindOfClass:[NSString class]]) {
    valueString = value;
} else if ([value respondsToSelector:@selector(stringValue)]) {
    valueString = [value stringValue];
} else if ([value respondsToSelector:@selector(description)]) {
    valueString = [value description];
}
描述方法是 NSObject protocol的一部分,因此Cocoa中的任何对象都会响应它;你可以这样发送说明:

for( id obj in heterogeneousCollection ){
    [obj description];
}

此外,NSLog()将描述发送到作为参数传递给%@说明符的任何对象.

请注意,除了记录/调试之外,不应将此方法用于其他目的.也就是说,您不应该依赖于框架版本之间具有特定格式的框架类的描述,而是开始执行基于另一个描述字符串构造对象的操作.

相关文章
相关标签/搜索