我有一个id*
类型,并希望将其转换为NSString *
- 启用ARC。我如何实现这一目标?
修改: 这不起作用......我应该如何调整它以使其有效?
id *idStar = ...;
NSString **string2Star = (NSString **) idStar;
NSLog(@"%@", *string2Star);
答案 0 :(得分:3)
id *
都无法投放到NSString *
。
请记住,id
已经是指针类型;使其等同于NSString
,而不是NSString *
。
为了投射,您必须将其投射到NSString **
。
修改强>
如果您正在展示,则演示完全没必要。
NSString *string2Star = *idStar;
应该做得很好;甚至那是不必要的。
请记住,Objective-C中的变量类型基本上只是对编译器的一个提示,让它知道你打算调用哪些方法;并且如果你打电话给不同的人就警告你。
实际的方法调用映射都发生在运行时;意味着演员阵容毫无意义。