听起来很傻,我试图在objective-c中编写一个简单的函数,它返回一个字符串并显示它,下面的代码几乎可以工作,但我不能让printf接受函数返回值...
NSString* getXMLElementFromString();
int main(int argc, char *argv[])
{
printf(getXMLElementFromString());
return NSApplicationMain(argc, (const char **) argv);
}
NSString* getXMLElementFromString() {
NSString* returnValue;
returnValue = @"Hello!";
return returnValue;
}
答案 0 :(得分:5)
NSString*
不等同于传统的C字符串,这是printf
所期望的。要以这种方式使用printf
,您需要利用NSString API从中获取以null结尾的字符串:
printf("%s", [getXMLElementFromString() UTF8String]);
答案 1 :(得分:2)
您应该使用NSLog()
,它将字符串(或格式字符串)作为参数。
您可以使用
NSLog(getXMLElementFromString());
或
NSLog(@"The string: %@", getXMLElementFromString());
%@
标记指定Objective-C对象(在本例中为NSString)。 NSLog()
在格式化字符串方面与printf()
基本相同,只是它也会接受对象令牌。
答案 2 :(得分:1)
我不知道printf可以处理String。尝试类似:
printf ("%s\n", [getXMLElementFromString()cString]);