hpi*_*que 7 iphone macos objective-c nsstring ios
如何获得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];
}
Run Code Online (Sandbox Code Playgroud)
该description方法是NSObject协议的一部分,因此Cocoa中的任何对象都会响应它; 你可以这样发送description:
for( id obj in heterogeneousCollection ){
[obj description];
}
Run Code Online (Sandbox Code Playgroud)
此外,NSLog()将发送description到作为参数传递给说明%@符的任何对象.
请注意,除了记录/调试之外,不应将此方法用于其他目的.也就是说,您不应该依赖于在框架版本之间具有特定格式的框架类的描述,而是开始执行基于另一个描述字符串构造对象的操作.