web-dev-qa-db-ja.com

NSLog構文について

(私はココアの初心者です)なぜ私たちは何をしなければならないのかと思っています:

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

次のようなものではありません:

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

あなたが始めているとき、これはかなり混乱することに同意します。主な理由は、NSLogメソッドは、Core Foundationの他の多くのメソッドと同様に、Objective-C APIではなくCベースのAPIであることです。 Cスタイルの関数は次のようになりますmyFunction(myParameter1、myParameter2)

[UIView presentModalViewController:]などに慣れているすべてのGUI要素は、Objective-C APIに基づいており、関数(Obj-Cではセレクターと呼ばれます)に見られる角括弧を使用しています。 Objective-C言語はCの上に置かれているため、ほとんどのアプリで両方のスタイルが見つかります。

18
Ben Clayton

私が理解しているように、NSLogはObjective C関数ではなく、Cocoaの基盤に組み込まれたC関数です。したがって、可変個引数を持つ基本的なC関数に準拠しています。

5
Ryan Poolos

NSLogはクラスのようにseemできますが、そうではありません。

NSLogは、デバッグ文をコンソールに出力するためのFoundationKit関数です。 NSObjCRuntime.h

void NSLog(NSString format, ...);

ここにはかなりの量の情報があります: http://cocoadev.com/wiki/NSLog

EDIT:@fyngyrzが指摘したように、ページは死んでいます。だから 2012年のページのウェイバックマシンバージョンです

4
Alladinian