将NSObject转换为NSString

时间:2009-04-06 04:11:18

标签: objective-c

我正在研究Stanford iPhone class,我无法弄清楚为什么我会收到编译器警告。我假设我需要将我的对象转换为NSString,但是当我尝试这样做时我收到错误。代码运行并给我预期的输出,但警告困扰我。

NSLog(@"lowerCaseString is: %@", [object lowercaseString]);

运行警告:'NSObject'可能无法响应'-lowerCaseString'

NSLog(@"lowerCaseString is: %@", [(NSString)object lowercaseString]);

这会引发错误:转换为请求的非标量类型

2 个答案:

答案 0 :(得分:21)

我相信这会做你需要的:

NSLog(@"lowerCaseString is: %@", [(NSString *)object lowercaseString]);

注意我刚刚在你的第二行代码中加了一个*来创建指向NSString的指针。希望它有所帮助!

亚当

答案 1 :(得分:3)

为什么对象声明为NSObject,如果它应该是NSString?如果您打算在其上调用NSString方法,请将其声明为NSString或将其保留为id。那你就不会有错误了。