Grayson (owner)

Revisions

gist: 98879 Download_button fork
public
Public Clone URL: git://gist.github.com/98879.git
NSObject+ivars.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Simple way of getting a list of ivar names for an Objective-C class.
 
#import <objc/runtime.h>
 
@interface NSObject (ivars)
-(NSArray *)ivars {
unsigned int ivarCount = 0;
Ivar *ivars = class_copyIvarList([self class], &ivarCount);
if (ivars && ivarCount) {
NSMutableArray *array = [NSMutableArray array];
unsigned int idx = 0;
for (idx=0; idx < ivarCount; idx++) {
Ivar ivar = ivars[idx];
[array addObject:[NSString stringWithUTF8String:ivar_getName(ivar)]];
}
free(ivars);
return array;
}
return nil;
}
@end