(我是可可初学者)我想知道为什么要这样做:
NSLog(@"this is the variable value: %d",variable);
而不是这样:
[NSLog outputThis:@"this is the variable value: %d" param:variable];
答案 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