使用ARC的Objective-C:如何从id *转换为NSString *?

时间:2011-12-09 10:01:32

标签: objective-c automatic-ref-counting

我有一个id*类型,并希望将其转换为NSString * - 启用ARC。我如何实现这一目标?

修改: 这不起作用......我应该如何调整它以使其有效?

id *idStar = ...;
NSString **string2Star = (NSString **) idStar;
NSLog(@"%@", *string2Star);

1 个答案:

答案 0 :(得分:3)

在任何情况下,

id *都无法投放到NSString *

请记住,id已经是指针类型;使其等同于NSString,而不是NSString *

为了投射,您必须将其投射到NSString **

修改

如果您正在展示,则演示完全没必要。

NSString *string2Star = *idStar;

应该做得很好;甚至那是不必要的。

请记住,Objective-C中的变量类型基本上只是对编译器的一个提示,让它知道你打算调用哪些方法;并且如果你打电话给不同的人就警告你。

实际的方法调用映射都发生在运行时;意味着演员阵容毫无意义。