27

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

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

誰かが私の質問についてはっきりしていない場合は、もう一度私に尋ねることができます。

4

8 に答える 8

36

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

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

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

NSString *property1;
int property2;
NSMutableArray *property3;

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

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

于 2011-02-28T10:48:11.863 に答える
20

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

例えば:

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

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

于 2011-02-28T10:51:57.627 に答える
11

すべての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回印刷されます)。

于 2011-02-28T10:53:36.223 に答える
10

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)`
于 2014-05-07T23:24:31.337 に答える
2

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

オブジェクト:

Dictionary、Array、Strings などのオブジェクトの場合は、次のようにします。

NSLog(@"%@", object);

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

NSLog(@"%i",intVal);

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

于 2011-02-28T10:51:33.587 に答える
2

このクラスを使用してください https://github.com/arundevma/ICHObjectPrinter

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

于 2014-07-07T17:47:38.983 に答える
1
NSLog(@"My object data:%@",[myObj someData]);
NSLog(@"My object Other data:%@",[myObj someOtherData]);

または直接:

NSLog(@"%@",myObj);
NSLog(@"Description:%@",[myObj description]);
于 2011-02-28T10:50:57.317 に答える
0

Satyaの回答に加えて、基本的なcデータ型を確認したい場合は、フォーマット指定子を使用してください。整数の%dなど:

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

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

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

于 2011-02-28T10:52:10.840 に答える