如何在NSLog中查看Object的值?

Cha*_*har 23 iphone object objective-c nslog

假设我有一个包含一些数据的对象.

如何使用NSLog查看数据?

如果有人不清楚我的问题,那么可以再问我一次.

Sat*_*tya 32

如果你想看一个NSArray和NSDictionary等对象,那么你可以直接打印出来 NSLog(@"%@",object);

如果它是用户定义的对象,则需要通过使用property(属性)调用来显示.

用户定义的对象,名称对象和属性如

NSString *property1;
int property2;
NSMutableArray *property3;
Run Code Online (Sandbox Code Playgroud)

按如下方式在控制台中打印它们:

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


Ste*_*ton 20

如果-(NSString*)description在类中实现该方法,则可以使用NSLog输出数据摘要.当然,您也可以直接输出任何属性.

例如:

NSLog (@"%@ %d", object, object.integer);
Run Code Online (Sandbox Code Playgroud)

第一部分调用description方法并输出; 第二部分获取对象的整数属性的值并输出.


Kon*_*d77 11

每个Objective-c对象(来自NSObject)都有一个名为的属性description.因此,如果您想打印有关课程的信息,这就是您要走的路.

@implementation MyClass

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

所以,如果你这样打电话.

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

然后它将写入"MyClass:This is my class"控制台(在这种情况下,它将打印两次).


Ger*_*eri 7

实现description给定的类.

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

NSLog(@"%@", object); // <Object> name: `Harry` size: `{2, 2}`
Run Code Online (Sandbox Code Playgroud)