假设有一个对象:
A *a = [[A alloc] init];
我们可能不关心A的类型,但是要获取 a 所指向的具体内容,该如何做呢?
可能有人会这个处理:
NSString *str = (NSString *) a ;
NSLog(@"%@", str);
这样可以将 a 的内容打印出来,细心的大家会发现,str 指向的是 a 的内容没有错,但是,str 所指向的内容还是 A 的结构,并不是我们想要的 NSString 的形式。
为什么会这样,上面的只是指针类型的强制转换,对象并没有因此而改变,这样就解释的通了。
其实,在 NSString 中有个初始化方法 initWithFormat, 没错,就是他,可以帮我们实现这一需求:
NSString *str = [[NSString alloc] initWithFormat : @"%@", a];