OCruntime交换方法用在处理iOS版本跨度问题的解决
来源:互联网 发布:mysql 5.7.17.tar.gz 编辑:程序博客网 时间:2024/05/21 22:40
//交换方法用在处理iOS版本跨度问题的解决.
本文根据常用的UIImage 和 NSMutableArray简介.
#import "UIImage+WCY.h"
#import <objc/runtime.h>
@implementation UIImage (WCY)
//使用运行时的方法交互
//+ (void)initialize {
// NSLog(@"initialize");
//}
// 加载的最早
+ (void)load {
Method m1 =class_getClassMethod([UIImageclass],@selector(imageNamed:));
Method m2 =class_getClassMethod([UIImageclass],@selector(imageWithName:));
method_exchangeImplementations(m1, m2);
}
+ (UIImage *)imageWithName:(NSString *)name;{
NSLog(@"imageWithName");
//内部进行版本控制
NSString *strName = name;
if ([[UIDevicecurrentDevice].systemVersionfloatValue] > 8) {
strName = [NSStringstringWithFormat:@"%@_ios7",name];
}else {
strName = name;
}
//这里用自己的否则会循环引用
UIImage *image = [UIImageimageWithName:strName];
if (image ==nil) {
image = [UIImageimageWithName:name];
}
return image;
}
@end
#import "NSMutableArray+WCY.h"
#import <objc/runtime.h>
@implementation NSMutableArray (WCY)
+ (void)load {
//替换数组的时候,是替换的类方法,
Method m1 =class_getInstanceMethod(NSClassFromString(@"__NSArrayM"),@selector(addObject_wcy:));
Method m2 =class_getInstanceMethod(NSClassFromString(@"__NSArrayM"),@selector(addObject:));
method_exchangeImplementations(m1, m2);
}
- (void)addObject_wcy:(id)anObject;{
if (anObject ==nil) {
// [self addObject:@"this is nil"];
[selfaddObject_wcy:@"this is nil"];
}else {
// [self addObject:anObject];
[selfaddObject_wcy:anObject];
}
}
@end
- OCruntime交换方法用在处理iOS版本跨度问题的解决
- iOS如何解决某些方法低版本不支持的问题
- 关于JavaScript处理时间跨度差问题的一个小细节
- apt-get依赖库版本过高问题的解决(如何处理libqt4-dev在ubuntu的安装问题)
- apt-get依赖库版本过高问题的解决(如何处理libqt4-dev在ubuntu的安装问题)
- iOS系统版本处理问题
- 解决android和ios中数据库版本不一致的问题
- 在iOS中有几种方法来解决多线程访问同一个内存地址的互斥同步问题
- ios 解决低版本Xcode不支持高版本iOS真机调试的问题
- IOS已解决 在构建版本上传后, 一直处于处理状态
- IOS已解决 在构建版本上传后, 一直处于处理状态
- iOS Xcode 解决每次版本更新后插件都不好用的问题
- 关于el表达式在web.xml用2.5版本的xsd不起作用的处理方法
- 在ios 下获取 rootviewcontroller 的版本不同的问题
- [iOS]解决pod search的仓库版本低于github仓库版本的方法
- 图像处理中的跨度(stride)
- 快速解决低版本Xcode不支持高版本iOS真机调试的问题
- 快速解决低版本Xcode不支持高版本的iOS真机调试问题
- 图形处理(八)点云重建(上)点云滤波、尖锐特征边增采样、移除离群点
- React Native 入门环境搭建
- Android程序混淆代码
- 基于jQuery下拉两级联动select
- Mysql中创建根据第二个自增的id
- OCruntime交换方法用在处理iOS版本跨度问题的解决
- 图形处理(九)点云重建(下)法矢求取、有向距离场等值面提取
- HashMap的工作原理总结
- 自定义鼠标修改窗口大小
- RecyclerView的使用
- 图形处理(十)测地极坐标参数化
- 精华阅读第 5 期 | 移动开发精英俱乐部
- leetcode3. Longest Substring Without Repeating Characters
- 编译安装lamp