gpt4 book ai didi

objective-c - 在未知类型的类中调用静态方法

转载 作者:搜寻专家 更新时间:2023-10-30 20:20:49 25 4
gpt4 key购买 nike

我有一个有趣的问题,我试图在我的测试方法中基本上一无所知的类上调用类方法。我可以检查它的继承和它可能实现的任何协议(protocol),但看不到一种简单的方法来调用它的方法而不用 NSInvocation。下面的代码虽然很粗糙,但试图证明我遇到的问题。

@interface ClassA : NSObject

+ (Class)classIsPartialClassOf;

@end

@implementation ClassA

+ (Class)classIsPartialClassOf {
return [NSString class];
}

@end

@interface ClassB : NSObject

@end

@implementation ClassB

- (id)init {

[ClassB testClass:[ClassA class]];

}

+ (void)testClass:(Class)classDecl {

/* obviously if you know the type you can just call the method */
[ClassA classIsPartialClassOf];

/* but in my instance I do not know the type, obviously there are no classmethods to perform selector such as the fictional one below */
[classDecl performSelector:@selector(classIsPartialClassOf)];

}

@end

获取实现的方法似乎返回实例变体,我无法让它们在静态类本身上触发。

我的选择仅限于调用还是我错过了一些明显的东西并且应该踢自己?

预先感谢您的帮助。

最佳答案

问题是什么?你的代码

[classDecl performSelector:@selector(classIsPartialClassOf)];

应该可以。随便(写起来更简单)

[classDecl classIsPartialClassOf];

类对象是对象。类方法只是在类对象上调用的方法。

关于objective-c - 在未知类型的类中调用静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11719448/

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