假设我有一个包含一些数据的对象。
如何使用NSLog查看数据?
如果有人不清楚我的问题,那么可以再问我一次。
答案 0 :(得分:30)
如果您想查看NSArray和NSDictionary等对象,则可以直接打印NSLog(@"%@",object);
如果它是用户定义的对象,则需要通过使用property(属性)调用来显示。
具有名称对象和属性的用户定义对象,如
NSString *property1;
int property2;
NSMutableArray *property3;
按如下方式在控制台中打印:
NSLog(@"%@, %d, %@" object.property1,object.property2,object.property3);
答案 1 :(得分:19)
如果您在班级中实施-(NSString*)description
方法,则可以使用NSLog
输出数据摘要。当然,您也可以直接输出任何属性。
例如:
NSLog (@"%@ %d", object, object.integer);
第一部分调用description
方法并输出;第二部分获取对象的整数属性的值并输出。
答案 2 :(得分: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"
写入控制台(在这种情况下,它会打印两次)。
答案 3 :(得分:7)
实施给定类的 description
。
-(NSString*)description
{ return [NSString stringWithFormat:@"<%@> name: `%@` size: `%@`", NSStringFromClass(self), self.name, NSStringFromCGSize(self.size)]; }
NSLog(@"%@", object); // <Object> name: `Harry` size: `{2, 2}`
答案 4 :(得分:2)
我会建议:
<强>物件:强>
对于像Dictionary,Array这样的对象,字符串就像:
NSLog(@"%@", object);
对于像整数这样的基本数据类型
NSLog(@"%i",intVal);
答案 5 :(得分:2)
使用此课程https://github.com/arundevma/ICHObjectPrinter
NSLog(@"Object description is %@",[ICHObjectPrinter descriptionForObject:person]);
答案 6 :(得分:0)
NSLog(@"My object data:%@",[myObj someData]);
NSLog(@"My object Other data:%@",[myObj someOtherData]);
或直接:
NSLog(@"%@",myObj);
NSLog(@"Description:%@",[myObj description]);
答案 7 :(得分:0)
除Satya的答案外,如果您想查看基本的c数据类型,请使用格式说明符。例如%d表示整数:
NSLog (@"My integer:%d", myObject.myInteger);
完整列表如下: