// NSURL+url.h
#import <Foundation/Foundation.h>
@interface NSURL (url)
+(instancetype)HK_URLWithStr:(NSString *)str;
@end
// NSURL+url.m
// Created by H on 2017/3/7.
// Copyright © 2017年 TZ. All rights reserved.
// 1.方法交换!!!
#import "NSURL+url.h"
#import <objc/message.h>
@implementation NSURL (url)
//当这个类被加载的时候!!!
+(void)load{
//方法交换!!!
//思路:拿到两个方法(Method) ,让后通过runtime提供的方法交换函数进行交换
//拿到两个Method
// class_getClassMethod 拿到一个类的类方法
// class_getInstanceMethod 拿到一个类的对象方法
Method URLWith = class_getClassMethod([NSURL class], @selector(URLWithString:));
Method HK_URL = class_getClassMethod([NSURL class], @selector(HK_URLWithStr:));
//交换方法
method_exchangeImplementations(URLWith, HK_URL);
}
//写上注释!!!
+(instancetype)HK_URLWithStr:(NSString *)str
{
NSURL * url = [NSURL HK_URLWithStr:str];
if(url == nil){
NSLog(@"哥么为空!!");
}
return url;
}
@end