gpt4 book ai didi

iPhone 操作系统 : Get a list of methods and variables from anonymous object

转载 作者:搜寻专家 更新时间:2023-10-30 19:51:21 24 4
gpt4 key购买 nike

我正在构建我的第一个 iPhone/Obj-c 应用程序,我有大量的数据保存子类,我正在将它们传递给一个引用函数。对于引用函数,这些对象是匿名的,我需要找到一种方法来访问每个传递对象的所有变量。我一直在使用预构建的 NSArray 和选择器来执行此操作,但是有超过 30 个条目(并且还在增加),手动执行有点愚蠢。必须有一种方法可以动态查找匿名对象的所有变量。

obj-c runtime运行时文档提到了这个问题,但据我所知,这在 iPhone 操作系统中不可用。如果是,那么我不了解实现情况,需要一些指导。 A similar question之前有人问过,但我再次认为他们在谈论 OSX 而不是 iPhone。

有什么想法吗?

-(NSString*)cite:(id)source {
NSString *sourceClass = NSStringFromClass([source class]);

// Runs through all the variables in the manually built methodList
for(id method in methodList) {
SEL x = NSSelectorFromString(method);
// further implementation

// Should be something like
NSArray *methodList = [[NSArray alloc] initWithObjects:[source getVariableList]]
for(id method in methodList) {
SEL x = NSSelectorFromString(method);
// Further implementation
}

最佳答案

Mac 上的运行时与 iPhone 上的相同。如果另一个问题符合您的要求,那么它应该可以解决问题。如果没有,请提交错误。

与此同时,给定一个 Class,您可以使用 class_copyMethodList() 检索其所有选择器的列表功能:

unsigned int numMethods = 0;
Method * methods = class_copyMethodList(sourceClass, &numMethods);
NSMutableArray * selectors = [NSMutableArray array];
for (int i = 0; i < numMethods; ++i) {
SEL selector = method_getName(methods[i]);
[selectors addObject:NSStringFromSelector(selector)];
}
free(methods);

关于iPhone 操作系统 : Get a list of methods and variables from anonymous object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2899716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com