Я создаю инфраструктуру Cocoa Touch и использую среду выполнения для обмена imageNamed
UIImage, но среда не запускала метод +(void)load
.Я не знаю почему.Кто-нибудь знает причину?
Код:
#import "UIImage+HCBundleImg.h"
#import <objc/message.h>
@implementation UIImage (HCBundleImg)
+ (void)load {
Method originMethod = class_getClassMethod([self class], @selector(imageNamed:));
Method swappedMethod = class_getClassMethod([self class], @selector(hc_imageNamed:));
method_exchangeImplementations(originMethod, swappedMethod);
}
+ (UIImage *)hc_imageNamed:(NSString *)name {
if (![name hasPrefix:@"HCResource.bundle/"]) {
name = kImageBundlePath(name);
}
return [self hc_imageNamed:name];
}
@end