を使用してオーバーライドするにはどうすればよいcategory
ですか?だから私が持っている場合:
#import "UIColor+backColor.h"
@implementation UIColor (backColor)
@end
オーバーライドするには何を追加します+[UIColor groupTableViewBackgroundColor]
か?
を使用してオーバーライドするにはどうすればよいcategory
ですか?だから私が持っている場合:
#import "UIColor+backColor.h"
@implementation UIColor (backColor)
@end
オーバーライドするには何を追加します+[UIColor groupTableViewBackgroundColor]
か?
単純に再実装します。
+ (UIColor *)groupTableViewBackgroundColor {
return mySpecialColor;
}
これを行うとオーバーライドされます。
編集:これは機能していないように見えたので(そうすべきだったのに!)、メソッドの戻り値を変更するための本当に必要最低限 のメソッドスウィズリング実装があります:
#import <objc/runtime.h>
#import <objc/message.h>
UIColor *modified(Class __self, SEL __cmd)
{
return someOtherColor;
}
Class clazz = [UIColor class];
static IMP original;
Method m = class_getClassMethod(clazz, @selector(groupTableViewBackgroundColor));
original = method_setImplementation(m, (IMP)modified);
これはすべて、初期化の早い段階で行う必要があります。