有什么方法可以将id类型更改为NSString对象吗?请注意我的代码的以下行。
NSString *value = [appDelegate.bird_arr objectAtIndex:rowClicked] ;在这个基于导航的程序中,appDelegate是我的AppDelegate类的对象,bird_arr是NSMutableArray的对象。我想使用被点击的行中写的字符串。但是objectAtIndex:返回id类型。我们有没有办法把这个id类型改为NSString,或者其他任何我可以用来收集特定行中字符串的方法?
发布于 2010-09-28 01:58:46
是的,就是这样
NSString *value = (NSString *)[appDelegate.bird_arr objectAtIndex:rowClicked];如果您想仔细检查它是否真的是NSString,请使用
[someId isKindOfClass:[NSString class]]发布于 2010-09-28 01:59:20
id可以是任何对象的指针,它将被自动提升为任何对象指针类型(有点像C中的void * )。您在那里显示的代码看起来是正确的。不需要显式强制转换,但如果您真的想添加一个,也可以添加一个。
如果您从数组中得到的对象实际上不是NSString,那么您将不得不做一些其他的工作来获得您想要的对象。
发布于 2010-09-28 02:01:09
"id类型“只是告诉我们返回值是一个对象--仅此而已。它可能已经是一个NSString对象,也可能是其他对象。如果这个数组中的所有对象都是字符串,那么您的工作就完成了。如果它们是其他的东西,你需要一些方法将其他东西放入字符串中。
https://stackoverflow.com/questions/3806474
复制相似问题