Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 返回字符串的函数_Objective C - Fatal编程技术网

Objective c 返回字符串的函数

Objective c 返回字符串的函数,objective-c,Objective C,听起来可能很傻,但我正在尝试用objective-c编写一个简单的函数,返回一个字符串并显示它,下面的代码几乎可以工作,但我无法让printf接受函数返回值 NSString* getXMLElementFromString(); int main(int argc, char *argv[]) { printf(getXMLElementFromString()); return NSApplicationMain(argc, (const char **) argv);

听起来可能很傻,但我正在尝试用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;
}

我不知道printf能处理NSString。试着做一些事情,比如:

 printf ("%s\n", [getXMLElementFromString()cString]);

我不知道printf能处理NSString。试着做一些事情,比如:

 printf ("%s\n", [getXMLElementFromString()cString]);

您应该改为使用
NSLog()
,它将字符串(或格式字符串)作为参数

你可以用任何一个

NSLog(getXMLElementFromString());


其中,
%@
标记指定一个Objective-C对象(在本例中为NSString)
NSLog()
的工作原理与
printf()
在格式化字符串时基本相同,只是它也会接受对象标记。

您应该改为使用
NSLog()
作为参数

你可以用任何一个

NSLog(getXMLElementFromString());


其中,
%@
标记指定一个Objective-C对象(在本例中为NSString)
NSLog()
在格式化字符串时与
printf()
基本相同,只是它也会接受对象标记。

NSString*
与传统的C字符串不同,这是
printf
所期望的。要以这种方式使用
printf
,您需要利用NSString API从中获取以null结尾的字符串:

printf("%s", [getXMLElementFromString() UTF8String]);

NSString*
不等同于传统的C字符串,这是
printf
所期望的。要以这种方式使用
printf
,您需要利用NSString API从中获取以null结尾的字符串:

printf("%s", [getXMLElementFromString() UTF8String]);

第一种形式几乎总是应该避免的——如果攻击者都能指定格式字符串,你会很快被攻破。第一种形式几乎总是应该避免的——如果攻击者都能指定格式字符串,你会很快被攻破。谢谢你的帮助,好极了。谢谢你的帮助,好极了。如果你要做任何严肃的可可工作,我仍然会争论使用
NSLog()
而不是
printf()
。更喜欢
-UTF8String
而不是
-cString
-检查NSString文档。我仍然会争论使用
NSLog()
而不是
printf()
如果您要做任何严肃的工作,请选择
-UTF8String
而不是
-cString
-查看NSString文档。