gpt4 book ai didi

ios - 覆盖 Objective C 中的类方法

转载 作者:行者123 更新时间:2023-11-28 21:55:31 25 4
gpt4 key购买 nike

考虑以下情况:

@interface Superclass : NSObject
...
@end

@interface Superclass

+ (void)methodToOverride
{
NSLog(@"This method should be overridden by subclass!");
}

+ (void)callMethodToOverride
{
[self methodToOverride];
}

@end

@interface SubClass : SuperClass
...
@end

@implementation SubClass

+ (void)methodToOverride
{
NSLog(@"I'm overriding this method!");
}

@end

现在,当调用

[Subclass callMethodToOverride];

我得到 “This method should be overridden by subclass!”。是否有可能得到 I'm overriding this method! 或者这对 ObjC 的静态方法来说是不可能的?

干杯!

最佳答案

我时不时地使用这个范例,它对我很有用。在我的实现中,我引用了 [self class] 而不是 self。也许这就是您缺少的关键。

+ (void)callMethodToOverride
{
[[self class] methodToOverride];
NSLog(@"This is the class that I just used: %@", NSStringFromClass(self));
}

听起来这可能只是一个拼写错误,您没有使用您认为的类。

关于ios - 覆盖 Objective C 中的类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26745926/

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