我目前正在为开发人员创建一个新组件,因为我希望它非常易于集成,我希望能够查看它是否已在应用程序委托中创建,如果是,我想访问它并能够调用它的方法。
我希望答案应该是这样的:
Class clazz = [[[UIApplication sharedApplication] delegate] class];
unsigned int varCount;
Ivar *ivars = class_copyIvarList(clazz, &varCount);
for (int i = 0; i < varCount; i++) {
Ivar var = ivars[i];
NSString *typeEncoding = [NSString stringWithCString:ivar_getTypeEncoding(var) encoding:NSUTF8StringEncoding];
NSString *name = [NSString stringWithCString:ivar_getName(var) encoding:NSUTF8StringEncoding];
}
但我的问题是,使用该代码,我能够找到我的初始化组件......但我怎样才能访问它?
我试过这个:
if ([typeEncoding isEqualToString:@"@\"MyClassName\""]) {
MyClassName *myclass = (MyClassName *)object_getIvar(self, var);
}
没有成功(它没有指向好的组件)......
有人对此有解决方案吗?
谢谢 :)