iOS工程调试小技巧一:交换dealloc、字体方法,重写description
来源:互联网 发布:php类与对象person 编辑:程序博客网 时间:2024/05/29 23:46
很多人给工程调试时,每个界面都写dealloc,能达到效果,未免有些麻烦。下面介绍一个小小实例:
控制器写个分类,用runtime方法交换。
一、控制器、View分类
1.新建分类
#import "UIViewController+XYController.h"
#import <objc/runtime.h>
3.实现如下两个方法
+ (void)load{
Method m1 = class_getInstanceMethod([self class], NSSelectorFromString(@
"dealloc"));
Method m2 = class_getInstanceMethod([self class], @selector(xy_dealloc));
method_exchangeImplementations(m1, m2);
}
- (void)xy_dealloc
{
NSLog(@"xy_dealloc - %@",[self class]);
[self xy_dealloc];
}
二、字体适配也可交换方法
+ (void)load
{
Method m1 = class_getClassMethod(self,@selector(systemFontOfSize:));
Method m2 = class_getClassMethod(self,@selector(MDJ_ystemFontOfSize:));
method_exchangeImplementations(m1, m2);
}
+ (void)MDJ_ystemFontOfSize:(CGFloat)fontSize
{
MDJLog(@"----");
// 以iPhone6屏幕对角线为基准,计算不同机型的比例,根据项目可以适当调整比例。
if (Iphone5){
fontSize -=1;
}elseif (Iphone6Plus){
fontSize +=1;
}
[self MDJ_ystemFontOfSize:fontSize];
}
#import "NSObject+MDJExtnestion.h"
#import <objc/message.h>
@implementation NSObject (MDJExtnestion)
#define MYTest2
#ifdef MYTest
- (NSString *)description
{
NSMutableString *descri = [NSMutableString string];
unsignedint count = 0;
objc_property_t *properties = class_copyPropertyList([self class], &count);
for (int i =0; i < count; i ++) {
objc_property_t property = properties[i];
constchar *cProperty = property_getName(property);
id ocProperty = [NSString stringWithUTF8String:cProperty];
id value = [self valueForKey:ocProperty];
[descri appendFormat:@" %@ : %@ ",ocProperty,value];
}
return descri;
}
#endif
@end
- iOS工程调试小技巧一:交换dealloc、字体方法,重写description
- iOS基础:description方法重写
- IOS开发--Description描述方法书写小技巧
- 【ios】ARC中重写NSObject的dealloc方法的一个小细节
- description方法及重写
- 重写description方法
- 重写description方法
- 为什么重写 description 方法
- iOS开发-重写description方法,自定义控制台(log)信息
- iOS小技巧(一)
- description方法介绍及重写
- iOS 断点调试小技巧
- iOS小技巧 - 调换按钮中文字与图标的位置(自定义button,重写两个方法)
- iOS中正确处理dealloc方法
- iOS中正确处理dealloc方法
- iOS dealloc方法没有调用
- ios-description方法
- Obbjective-c - description方法和 description方法的重写
- python画图
- 最常用的20个正则表达式
- PHP 求字符串的相似度 函数
- 世上最小的卡片电脑 RaspberrysPi Zero W 入手体验
- 一站式学习Wireshark(一):Wireshark基本用法
- iOS工程调试小技巧一:交换dealloc、字体方法,重写description
- c++概念性知识点之初始化,声明和定义
- FindBugs规则整理
- STM32f103 —— 内部flash读写
- 一些第三方的手动导入
- python 画图--简单开始及折线图
- Python操控MySql
- 区块链学堂(第二课):以太坊基本概念+Geth 安装
- Thirft简介与用法