runtime实现私有变量搜索 Posted on 2018-07-31 | 本文Demo(https://github.com/crmo/BFSSearchClass)地址 需求在开发功能时,为了满足产品变态的需求,难免有系统类提供的API不够用的时候,这时候私有变量就可以发挥它光和热了。怎么通过一个类,一层一层的找到特定类型的私有成员变量?受益于Objective-C ... Read more »
iOS横竖屏总结 Posted on 2018-07-23 | 使用Auto Layout来进行布局就不用自己去监听横竖屏事件了,只需要绘制多套布局即可。但是项目有很多页面是自己手动计算的,于是只有想办法再旋转屏幕时重新布局。 相关枚举屏幕方向有3个相关枚举,界面方向UIInterfaceOrientation,设备方向UIDeviceOrientation,支 ... Read more »
记一个实现UIWindow子类的小坑 Posted on 2018-07-19 | 问题描述项目中为了实现一个全局遮罩界面,使用了一个UIWindow的子类MyWindow,MyWindow为了实现回调定义了代理MyWindowDelegate。代码大致如下: 123456789101112131415161718192021@protocol MyWindowDelegate & ... Read more »
一个autoreleasepool的使用场景 Posted on 2018-07-18 | 今天在学习大佬博客的时候看到一个问题,下面代码会有什么问题? 123456// largeNumber是一个很大的数for (int i = 0; i < largeNumber; i++) { NSString *str = [NSString stringWithForma ... Read more »
UITabbar自定义Badge Posted on 2018-07-10 | tabBarItem的Badge默认样式是带数字的,但是产品要求只要一个小红点,不需要数字,这就需要我们自定义Badge了。 用Reveal分析UITabBar,发现每个按钮是一个UITabBarButton,层级如下: -UITabBarButton–UITabBarSwappableImage ... Read more »
计算文字长度 Posted on 2018-07-09 | 官方文档 方法定义1234- (NSRect)boundingRectWithSize:(NSSize)size options:(NSStringDrawingOptions)options attribut ... Read more »
UITextField控制输入长度 Posted on 2018-07-06 | 有些时候会有控制输入框文字长度的需求,记录一个简单的思路。 12345678910111213141516171819- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range rep ... Read more »
property or synthsize Posted on 2018-07-05 | @property (nonatomic, retain) NSObject *var; 生成var的set、get方法的方法声明 生成var的set、get方法的实现(早期版本编译器不生成) 生成成员变量_var(早期版本编译器不生成) @synthsize var = _var 生成var ... Read more »
Tagged Pointer小记 Posted on 2018-07-04 | 本文使用的测试环境是arm64架构真机 为了探究Tagged Pointer本质,可以查看runtime源码,主要看文件objc-internal.h。 宏定义可以看到以下宏定义,只有在64位系统才支持Tagged Pointer。 123#if __LP64__#define OBJC_HAV ... Read more »
URLWithString return nil Posted on 2018-07-03 | 问题描述在使用URLWithString生成NSURL时,如果出现中文,会导致返回的NSURL为nil。代码如下: 1NSURL *aUrl = [NSURL URLWithString:@"http://中文域名"]; stackoverflow相关讨论 查询了URLWithS ... Read more »