Я использую среду выполнения для обмена методом UIImage, но не запускал метод загрузки + (void), почему? - PullRequest
0 голосов
/ 05 июня 2019

Я создаю инфраструктуру 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...