我只是想知道是否有一种快速简便的方法可以将我的类的属性的所有各种值打印到日志中以进行调试。就像我想知道所有 BOOL、浮点数等的值是什么。
这个问题 https://stackoverflow.com/questions/9269372/loop-through-all-object-properties-at-runtime看来他们已经找到了你问题的答案。
Update:
我很好奇,做了一个类别:
//Using Xcode 4.5.2 - iOS 6 - LLDB - Automatic Reference Counting
//NSObject+logProperties.h
@interface NSObject (logProperties)
- (void) logProperties;
@end
//NSObject+logProperties.m
#import "NSObject+logProperties.h"
#import <objc/runtime.h>
@implementation NSObject (logProperties)
- (void) logProperties {
NSLog(@"----------------------------------------------- Properties for object %@", self);
@autoreleasepool {
unsigned int numberOfProperties = 0;
objc_property_t *propertyArray = class_copyPropertyList([self class], &numberOfProperties);
for (NSUInteger i = 0; i < numberOfProperties; i++) {
objc_property_t property = propertyArray[i];
NSString *name = [[NSString alloc] initWithUTF8String:property_getName(property)];
NSLog(@"Property %@ Value: %@", name, [self valueForKey:name]);
}
free(propertyArray);
}
NSLog(@"-----------------------------------------------");
}
@end
将其包含在您的班级中:#import "NSObject+logProperties.h"
并打电话[self logProperties];
到那些属性!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)