id类型为NSString

Nit*_*esh 15 types casting objective-c nsstring

有什么方法可以将id类型更改为NSString对象?请注意我的代码的以下行.

NSString *value = [appDelegate.bird_arr objectAtIndex:rowClicked] ;
Run Code Online (Sandbox Code Playgroud)

在这个appDelegate是基于导航的程序中我的AppDelegate类的对象,bird_arr是NSMutableArray的对象.我想使用单击的行中写的字符串.但objectAtIndex:返回id类型.我们有没有办法将此id类型更改为NSString或我可以在特定行中收集字符串的任何其他方式?

cob*_*bal 24

是的,只是施展它

NSString *value = (NSString *)[appDelegate.bird_arr objectAtIndex:rowClicked];
Run Code Online (Sandbox Code Playgroud)

如果你想仔细检查它是否真的是一个NSString使用

[someId isKindOfClass:[NSString class]]
Run Code Online (Sandbox Code Playgroud)

  • 无需强制转换 - "id"是一个通用对象,因此可以分配给任何类型的指针. (5认同)

Car*_*rum 5

一个id可能是一个指针任何对象,而且它会得到(有点像自动升级到任何对象的指针类型void *在C).你在那里展示的代码看起来是正确的 没有必要进行明确的演员表,但如果你真的想要,你可以添加一个.

如果你得到了数组的对象不是,事实上,一个NSString,你将不得不做一些其他工作,以获得您想要的对象.