自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

蓝云阁主的博客

开源、共享、学习是IT人不断强大自己的力量源泉!

原创 设计模式与架构

何为架构? 架构(Architecture) 软件开发的设计方案 类与类之间的关系、模块与模块的关系、客户端与服务端的关系 经常听到的架构名词 MVC、MVP、MVVM、VIPER、CDD(这些设计模式一般都是在架构里的界面层使用的) 三层架构:界面层(展示UI页面等) -> 业务层(执行一...

2019-03-29 13:13:53 10715 0

原创 Runtime

Object-C是一门动态性比较强的编程语言,跟C、C++等语言有着很大的不同。 Object-C的动态性是由Runtime API来支撑的。 Runtime API提供的接口基本都是C语言的,源码由C、C++、汇编语言编写。 objc_msgSend执行流程: OC中的方法调用,其实都是转...

2019-03-19 17:30:38 1225 0

原创 杭州旅游1-2日最佳路线

经过几次被坑和数次的亲身验证得出以下最佳旅游路线 杭州旅游第一站:灵隐寺 旅游路线:早起坐地铁公交到灵隐寺景点(下图是公交地铁最佳路线),或者滴滴打车大约50元。(最晚7点起,不然到地方就该吃中午饭了,能更早最好晚了你就会把时间浪费到排队买票上面,一般6点太阳就晒屁股了) 第二站:西湖 ...

2019-08-09 10:52:57 74 0

原创 swift使用注意事项

swift使用注意事项: 在方法的func关键字之前加上关键字static或者class都可以用于指定类方法.不同的是用class关键字指定的类方法可以被子类重写 我们可以知道被static指定的类方法包含final关键字的特性–防止被重写. Swift调用其它类里面的方法时,不需要先import...

2019-05-13 17:07:29 60 0

原创 消息机制

runtime----消息发送机制 objc_msgSend执行流程: OC中的方法调用,其实都是转换为objc_msgSend函数的调用 objc_msgSend的执行流程可以分为3大阶段: 1.消息发送 2.动态方法解析 3.消息转发 在消息发送阶段就会找到相应方法进行调用,如果...

2019-04-12 17:00:56 120 0

原创 购买汽车都有哪些费用,以及计算公式

购置税:计算公式:裸车价+1.170.1;例如:10万+1.1780.1=8547; 交强险:6座以下950,6座及以上1100; 车船税:根据排量来缴纳:1.0L以下-180;1.0-1.6L-360;1.6-2.0L-450;等等 车损险:计算公式:基本保费+新车购置价费率;例如:10万...

2019-03-30 15:03:48 974 0

原创 安装包瘦身

安装包瘦身: 1.安装包(IPA)主要由可执行文件、资源组成 2.资源(图片、音频、视频等) 采取无损压缩 去除没有用到的资源:https://github.com/tinymind/LSUnusedResources 3.可执行文件瘦身 编译器优化 Strip Linked Prod...

2019-03-28 15:41:47 178 0

原创 iOS性能优化

CPU和GPU 1.在屏幕成像过程中,CPU和GPU起着至关重要的作用 CPU(Central Processing Unit,中央处理器) 对象的创建和销毁、对象属性的调整、布局计算、文本的计算和排版、图片的格式转换和解 码、图像的绘制(Core Graphics) GPU(Graphi...

2019-03-28 14:47:56 654 0

原创 内存管理

用弱指针weak解决循环引用的问题,只针对block CADisplayLink、NSTimer使用注意: 一.CADisplayLink,NSTimer会对target产生强引用,如果target又对他们产生强引用,那么就会引发循环引用 解决方案: 1.使用block __weak typeof...

2019-03-26 16:18:17 167 0

原创 多线程笔记

iOS中常见的多线程方案(后面三个的底层都是基于pthread) 技术方案 简介 语言 线程生命周期 使用频率 pthread - 一套通用的多线程...

2019-03-16 16:46:32 171 1

原创 RunLoop笔记

什么是Runloop? 顾名思义,运行循环,在程序运行过程中做一些事情,Runloop也是一个对象。 应用范围: 1.定时器(Timer)、PerformSelector 2.GCD Async Main Queue。//GCD主线程(GCD的子线程是不需要Runloop的 3.事件响应...

2019-03-15 15:35:48 183 1

原创 封装、继承、多态

封装、继承、多态 三、多态: 多态一般都要和继承结合起来说,其本质是子类通过覆盖或重载,父类的方法,来使得对同一类对象同一个方法的调用产生不同的结果。 实现: 我们在实现获取不同电脑运行的不同系统时,先创建一个Computer类(父类)并添加一个system方法,再创建一个PC类(继承于Compu...

2019-03-15 15:32:30 133 0

原创 沙盒中 document、tmp、library 的区别

documents,tmp,app,Library。 (NSHomeDirectory()), 手动保存的文件在documents文件里 Nsuserdefaults保存的文件在tmp文件夹里 1、Documents 目录:您应该将所有de应用程序数据文件写入到这个目录下。这个目录用于存储用户数据...

2019-03-15 15:30:29 185 0

原创 单例模式基本用法

在objective-c中要实现一个单例类,至少需要做以下四个步骤: 1、为单例对象实现一个静态实例,并初始化,然后设置成nil, 2、实现一个实例构造方法检查上面声明的静态实例是否为nil,如果是则新建并返回一个本类的实例, 3、重写allocWithZone方法,用来保证其他人直接使用allo...

2019-03-15 15:29:11 229 0

原创 Core Data基础概念总结

Core Data涉及到的几个主要的概念可以对应数据库来理解: NSManagedObjectContext(托管对象上下文):数据库 NSEntityDescription(实体描述):表 NSFetchRequest(请求):命令集 NSPredicate(谓词):查询语句 在书中给出的例子中...

2019-03-15 15:28:05 128 0

转载 真机调试步骤

真机调试的步骤: 1.注册成为苹果开发者(99$) 2.登陆苹果开发者主页 https://developer.apple.com/membercenter/index.action 3.点击 Certificates, Identifiers & Profiles 4.点击Cer...

2019-03-15 15:26:59 130 0

转载 网络解析

网络解析 又叫网络编程、网络请求 完整的网络请求分为三步: 1>url NSURL 请求网络地址 2>request 请求对象 3>connection 连接对象 其中2>又分为两种:get请求和post请求 3>也分为两种:同...

2019-03-15 15:19:43 191 0

原创 iOS 获取手机缓存的方法、清空的方法

注意:先导入SDImageCache.h和SDImageCache.m 1.获取缓存方法 (NSString *)getSdHuanCun{ NSUInteger intg = [[SDImageCache sharedImageCache] getSize]; NSString * curr...

2019-03-15 15:00:24 357 0

原创 UItableview用法总结: 单元格删除、添加方法、拖动单元格

#pragma mark-- 单元格删除、添加方法,只要实现了此方法就能支持删除了,但添加还需要其它 (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingS...

2019-03-15 14:58:03 158 0

转载 iOS常见面试题总结

1.协议的原理和本质 protocol无论是在哪个领域都是一种约束,规范。在OC中的协议主要用于在各个类之间进行回调传值。协议有委托方,代理方,委托方是协议的制定者,需要声明协议的方法,实现协议的对象。代理方,是协议的遵守着,需要遵守协议,并实现协议中的必要方法。 2.ARC自动引用计数机制 co...

2019-03-14 11:21:23 216 0

原创 KVO用法总结

iOS用什么方式实现对一个对象的KVO?(KVO的本质是什么?) 1>利用RuntimeAPI动态生成一个子类,并且让instance对象的isa指向这个全新的子类 2>当修改instance对象的属性时,会调用Foundation的NSSetxxxValueAndNo...

2019-03-14 11:15:30 126 0

原创 frame和bounds的原理和本质总结

frame指的是:该view在父view坐标系统中的位置和大小(参照点是父view的坐标系统) bounds指的是:该view在本身坐标系统中的位置和大小(参照点是本身坐标系统) Objective-C的类不可以多重继承;可以实现多个接口(协议);Category是类别;一般情况用分类好,用Cat...

2019-03-14 11:12:50 152 0

原创 iOS 深拷贝和浅拷贝的问题总结

深拷贝拷贝的是内容(源对象引用计数不变),浅拷贝拷贝的是指针(源对象引用计数加1) 总结来说就是只有不可变对象调用copy为浅拷贝,其它都是深拷贝。 alloc 是创建变量(此时分配内存) init 是初始化变量 dealloc 是释放变量 retain 是引用计数加1 release...

2019-03-14 11:09:52 330 0

原创 instance实例对象、class类对象、meta-class元类对象

instance实例对象、class类对象、meta-class元类对象 1、instance的isa指向class 1>当调用对象方法时,通过instance的isa找到class,最后找到对象方法的实现进行调用。 2、class的isa指向meta-class 1>...

2019-03-14 10:58:13 575 0

原创 alloc原理解读

alloc :分配内存空间,32位的系统占4个字节,64位系统 占8个字节 一个NSObject对象占用多少内存? 1、系统分配了16个字节给NSObject对象(通过malloc_size函数获得) 2、但NSObject对象内部只使用过了8个字节的空间(64bit环境下,可以通过class_...

2019-03-14 10:53:25 162 0

原创 KVC用法

KVC的全称是Key-Value Coding,俗称“键值编码”,可以通过一个key来访问某个属性。 常见的API有: - (void)setValue:(id)value forKeyPath:(NSString *)keyPath; - (void)setValue:(id)value for...

2019-03-14 10:50:51 132 0

原创 category分类和class extension 类扩展

Category的使用场合是什么? 1、Category的实现原理: (1)Category编译之后的底层结构是struct category_t,里面存储着分类的对象方法,类方法,属性,协议信息 (2)在程序运行的时候,runtime会将Category的数据,合并到类信息中(类对象,元类对象中...

2019-03-14 10:48:31 160 0

原创 +load方法、+initialize方法

load概述: 1.Category中有load方法 2.load方法在runtime加载类、分类的时候调用 3.load方法可以继承,但是一般情况下不会主动去调用load方法,都是让系统自动调用 +load方法 1、+load方法会在runtime加载类、分类是调用 2、每个类、分类的+load...

2019-03-14 10:47:06 179 0

原创 Block使用方法总结

- block 本质 block 本质上也是一个OC对象,它内部也有一个 isa 指针 block是封装了函数调用以及函数调用环境的OC对象 - block 内调用局部变量和全局变量的原理: 1、block内调用局部变量时:会把局部变量捕获到block内,也就是block内会创建一个对象来接收局部...

2019-03-14 10:43:09 304 0

提示
确定要删除当前文章?
取消 删除