了解NSLog语法

tah*_*hir 14 cocoa objective-c nslog

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

NSLog(@"this is the variable value: %d",variable);
Run Code Online (Sandbox Code Playgroud)

而不是这样的:

[NSLog outputThis:@"this is the variable value: %d" param:variable];
Run Code Online (Sandbox Code Playgroud)

Ben*_*ton 18

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

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

  • 苹果决定一切,我们会喜欢它 (2认同)

Rya*_*los 5

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


All*_*ian 5

NSLog可能看起来像一个类,但事实并非如此。

NSLogFoundationKit用于将调试语句打印到控制台的功能。它定义在NSObjCRuntime.h

void NSLog(NSString format, ...);
Run Code Online (Sandbox Code Playgroud)

这里有很多信息:http : //cocoadev.com/wiki/NSLog

编辑:正如@fyngyrz所指出,该页面已死。所以这是2012年的网页的备用机器版本