了解NSLog语法

时间:2012-06-25 13:39:02

标签: objective-c cocoa nslog

(我是可可初学者)我想知道为什么要这样做:

NSLog(@"this is the variable value: %d",variable);

而不是这样:

[NSLog outputThis:@"this is the variable value: %d" param:variable];

3 个答案:

答案 0 :(得分:18)

我同意当你开始时这很令人困惑。主要原因是NSLog方法与Core Foundation中的许多其他方法一样,是基于C的API,而不是Objective-C API。 C风格的函数看起来像这个 myFunction(myParameter1,myParameter2)

你可能习惯使用的所有GUI内容[UIView presentModalViewController:]等都基于Objective-C API,你可以看到函数的方括号(在Obj-C中称为选择器)。 Objective-C语言位于C之上,因此您可以在大多数应用程序中找到这两种样式。

答案 1 :(得分:5)

据我所知,NSLog不是一个Objective C函数,而是一个内置于Cocoa基础的C函数。因此,它符合具有可变参数的基本C函数。

答案 2 :(得分:4)

NSLog 似乎就像一个类,但事实并非如此。

  

NSLog是一个FoundationKit函数,用于将调试语句打印到   安慰。它在NSObjCRuntime.h

中定义
void NSLog(NSString format, ...);

此处有大量信息: http://cocoadev.com/wiki/NSLog

编辑:正如@fyngyrz指出的那样,页面已经死了。所以here is a wayback-machine version of the page from 2012