Предположим, что у меня есть объект, содержащий некоторые данные.
Как я могу увидеть эти данные с помощью 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
и выводит это; вторая часть получает значение целочисленного свойства объекта и выводит его.
Каждый объект 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"
на консоль (в этом случае он будет печатать дважды).
Внедрить description
данного класса.
-(NSString*)description
{ return [NSString stringWithFormat:@"<%@> name: `%@` size: `%@`", NSStringFromClass(self), self.name, NSStringFromCGSize(self.size)]; }
NSLog(@"%@", object); // <Object> name: `Harry` size: `{2, 2}`
Я бы предложил следующее:
Объекты:
Для таких объектов, как 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);
Полный список находится здесь: