web-dev-qa-db-ja.com

NSLogでオブジェクトの値を確認するにはどうすればよいですか?

いくつかのデータを含むオブジェクトがあるとします。

NSLogを使用してそのデータを確認するにはどうすればよいですか?

誰もが私の質問を明確にしていない場合は、再度私に尋ねることができます。

23

NSArrayやNSDictionaryなどのオブジェクトを表示したい場合は、NSLog(@"%@",object);のように直接出力できます。

ユーザー定義のオブジェクトの場合は、プロパティ(属性)を指定して呼び出す必要があります。

名前オブジェクトと次のようなプロパティを持つユーザー定義オブジェクト

_NSString *property1;
int property2;
NSMutableArray *property3;
_

次のようにコンソールでそれらを印刷します。

NSLog(@"%@, %d, %@" object.property1,object.property2,object.property3);

33
Satya

クラスに-(NSString*)descriptionメソッドを実装すると、NSLogを使用してデータの概要を出力できます。もちろん、任意のプロパティを直接出力することもできます。

例えば:

NSLog (@"%@ %d", object, object.integer);

最初の部分はdescriptionメソッドを呼び出し、それを出力します。 2番目の部分は、オブジェクトの整数プロパティの値を取得して出力します。

20

すべてのObjective-cオブジェクト(これはNSObjectからのもの)には、descriptionというプロパティがあります。したがって、クラスに関する情報を印刷したい場合は、これが最適な方法です。

@implementation MyClass

- (NSString*)description
{
   return [NSString stringWithFormat:@"MyClass:%@", @"This is my class"];
}

したがって、このような呼び出しを行う場合。

MyClass *myClass = [[MyClass alloc] init];
NSLog(@"%@", myClass);
NSLog(@"%@", [myClass description]); //Same as the line above

次に、"MyClass:This is my class"をコンソールに送信します(この場合は2回出力されます)。

11
Konrad77

指定したクラスのdescriptionを実装します。

-(NSString*)description
{ return [NSString stringWithFormat:@"<%@> name: `%@` size: `%@`", NSStringFromClass(self), self.name, NSStringFromCGSize(self.size)]; }

NSLog(@"%@", object); // <Object> name: `Harry` size: `{2, 2}`
7
Geri

私はこれらを提案します:

オブジェクト:

辞書、配列、文​​字列などのオブジェクトの場合、次のようにします。

NSLog(@"%@", object);

整数のような基本的なデータ型の場合

NSLog(@"%i",intVal);

タイプエンコーディングについては、 http://developer.Apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtTypeEncodings.html を参照してください。

2
Nandita Saini

このクラスを使用 https://github.com/arundevma/ICHObjectPrinter

NSLog(@"Object description is %@",[ICHObjectPrinter descriptionForObject:person]);

2
arundevma
NSLog(@"My object data:%@",[myObj someData]);
NSLog(@"My object Other data:%@",[myObj someOtherData]);

または直接:

NSLog(@"%@",myObj);
NSLog(@"Description:%@",[myObj description]);
0
SNR

Satyaの回答に加えて、基本的なcデータ型を表示する場合は、フォーマット指定子を使用します。整数の%dなど:

NSLog (@"My integer:%d", myObject.myInteger);

完全なリストはここにあります:

http://www.cplusplus.com/reference/clibrary/cstdio/printf/

0
Dave