IOS
会飞的狗~
互相学习,分享营养。
展开
-
卡顿和卡死监控
卡顿原因主要是主线程阻塞。在开发过程中,遇到的造成主线程阻塞的原因可能是:主线程在进行大量I/O操作:为了方便代码编写,直接在主线程去写入大量数据主线程在进行大量计算:代码编写不合理,主线程进行复杂计算大量UI绘制:界面过于复杂,UI绘制需要大量时间主线程在等锁:主线程需要获得锁A,但是当前某个子线程持有这个锁A,导致主线程不得不等待子线程完成任务。…业界调研微信团队(Matrix)卡顿检测流程图主线程卡顿表现FPS降低CPU占用率非常高主线程RunLoop执行时间过长原创 2020-07-22 10:34:09 · 3172 阅读 · 3 评论 -
关联对象源码分析
什么是关联对象?一个对象可以关联多个对象,可以扩展原有对象的能力,关联是拥有的关系。Case1: Category可以使用@property添加一个属性吗?@interface NSString (MyNSString)@property (nonatomic, copy) NSString *name;@end警告是name的存取方法需要手动实现,或者通过@dynamic在运行时实现存取方法。//强制使用NSString *test = @"test";test.name = @"n原创 2020-07-21 23:30:42 · 719 阅读 · 0 评论 -
判断一个NSDictionary是否包含NSDictionary简单写法
思路:需要考虑到字典嵌套字典情况,简单的递归查找就可以实现了,如果有其他更简单的方法欢迎留言讨论~#pragma mark - /// 数据转化/// @param data 源object+ (NSDictionary *)handleWithData:(NSDictionary *)data { if (![data isKindOfClass:[NSDictionary class]]) { return nil; } NSMutableDiction原创 2020-06-06 22:17:35 · 672 阅读 · 0 评论 -
手把手教学IOS自定义cell-仿微信消息列表
效果图自定义View是一件非常有成就感的实践,如果有Android基础的同学接触起来应该会比较顺手,基本思路都差不多。项目采用原生的布局方式,实现仿微信消息列表效果,主要是学习自定义Cell,展示头像、标题、消息概要、时间和未读数View。下图左边是样例,右边是实现的效果图。项目结构项目采用MVC模式,Model处理数据,View提供自定义的Cell和Cell的位置大小,ViewContro...原创 2019-07-13 23:01:56 · 2214 阅读 · 0 评论 -
Objective-C 入门篇
前言Objective-C(下面简称OC)是由C语言扩展出来的,其火星文写法对于之前从事Java开发的同学颇感蛋疼。本文侧重介绍常用的语法,通过对比Java并结合本人入门的过程和经验,帮助有需求的同学快速掌握OC基本编程,为IOS的入门奠定语言基础。首先是写第一行代码,恭喜正式进入OC学习阶段。int main(int argc, char *argv[]){ @autoreleas...原创 2019-07-07 00:53:50 · 15200 阅读 · 5 评论