返回字符串的函数

时间:2009-08-21 18:35:37

标签: objective-c

听起来很傻,我试图在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;
}

3 个答案:

答案 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]);