假设有一个对象:
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];
本文介绍了如何使用NSString的initWithFormat初始化方法从对象指针中获取内容并将其转换为所需类型,同时解释了强制类型转换与对象实际类型之间的区别。
1399

被折叠的 条评论
为什么被折叠?



