いくつかのデータを含むオブジェクトがあるとします。
NSLogを使用してそのデータを確認するにはどうすればよいですか?
誰かが私の質問についてはっきりしていない場合は、もう一度私に尋ねることができます。
いくつかのデータを含むオブジェクトがあるとします。
NSLogを使用してそのデータを確認するにはどうすればよいですか?
誰かが私の質問についてはっきりしていない場合は、もう一度私に尋ねることができます。
NSArrayやNSDictionaryなどのオブジェクトを表示したい場合は、次のように直接印刷できます。NSLog(@"%@",object);
ユーザー定義オブジェクトの場合は、プロパティ(属性)を使用して呼び出す必要があります。
名前オブジェクトと次のようなプロパティを持つユーザー定義オブジェクト
NSString *property1;
int property2;
NSMutableArray *property3;
次のようにコンソールでそれらを印刷します。
NSLog(@"%@, %d, %@" object.property1,object.property2,object.property3);
-(NSString*)description
クラスにメソッドを実装するNSLog
と、データの要約を出力するために使用できます。もちろん、任意のプロパティを直接出力することもできます。
例えば:
NSLog (@"%@ %d", object, object.integer);
最初の部分はdescription
メソッドを呼び出し、それを出力します。2 番目の部分は、オブジェクトの整数プロパティの値を取得し、それを出力します。
すべての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回印刷されます)。
description
指定されたクラスの実装。
-(NSString*)description {
return [NSString
stringWithFormat:@"<%@> name: `%@` size: `%@`",
NSStringFromClass(self), self.name,
NSStringFromCGSize(self.size)];
}
NSLog(@"%@", object); // <Object> name: `Harry` size: `{2, 2}`
extension Object: CustomStringConvertible {
var description: String {
"<\(Self.self)> name: `\(name)` size: `\(size)`"
}
}
print(object) // <Object> name: `Harry` size: `(2.0, 2.0)`
私はこれらを提案します:
オブジェクト:
Dictionary、Array、Strings などのオブジェクトの場合は、次のようにします。
NSLog(@"%@", object);
整数などの基本的なデータ型の場合
NSLog(@"%i",intVal);
型エンコーディングについては、http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtTypeEncodings.html を参照してください。
このクラスを使用してください https://github.com/arundevma/ICHObjectPrinter
NSLog(@"Object description is %@",[ICHObjectPrinter descriptionForObject:person]);
NSLog(@"My object data:%@",[myObj someData]);
NSLog(@"My object Other data:%@",[myObj someOtherData]);
または直接:
NSLog(@"%@",myObj);
NSLog(@"Description:%@",[myObj description]);
Satyaの回答に加えて、基本的なcデータ型を確認したい場合は、フォーマット指定子を使用してください。整数の%dなど:
NSLog (@"My integer:%d", myObject.myInteger);
完全なリストはここにあります: