自定义博客皮肤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人不断强大自己的力量源泉!

  • 博客(29)
  • 资源 (3)
  • 收藏
  • 关注

原创 设计模式与架构

何为架构?架构(Architecture)软件开发的设计方案类与类之间的关系、模块与模块的关系、客户端与服务端的关系经常听到的架构名词MVC、MVP、MVVM、VIPER、CDD(这些设计模式一般都是在架构里的界面层使用的)三层架构:界面层(展示UI页面等) -> 业务层(执行一些业务操作比如:加载数据) -> 数据层(获取数据,本地数据或者是网络数据);四层架构:界面层...

2019-03-29 13:13:53 11489

原创 Runtime

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

2019-03-19 17:30:38 1420

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

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

2019-08-09 10:52:57 600

原创 swift使用注意事项

swift使用注意事项:在方法的func关键字之前加上关键字static或者class都可以用于指定类方法.不同的是用class关键字指定的类方法可以被子类重写我们可以知道被static指定的类方法包含final关键字的特性–防止被重写.Swift调用其它类里面的方法时,不需要先import这个类就可以直接调用typealias是用来为已经存在的类型重新定义名字的,通过命名,可以使代码变得...

2019-05-13 17:07:29 295

原创 消息机制

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

2019-04-12 17:00:56 259

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

购置税:计算公式:裸车价+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万的车子缴纳的车损险两千左右第三者责任险:1270保额20万;1721保额50万;2242保额100万不计...

2019-03-30 15:03:48 3085

原创 安装包瘦身

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

2019-03-28 15:41:47 299

原创 iOS性能优化

CPU和GPU1.在屏幕成像过程中,CPU和GPU起着至关重要的作用CPU(Central Processing Unit,中央处理器)对象的创建和销毁、对象属性的调整、布局计算、文本的计算和排版、图片的格式转换和解码、图像的绘制(Core Graphics)GPU(Graphics Processing Unit,图形处理器)纹理的渲染2.在iOS中是双缓冲机制,有前帧...

2019-03-28 14:47:56 897

原创 内存管理

用弱指针weak解决循环引用的问题,只针对blockCADisplayLink、NSTimer使用注意:一.CADisplayLink,NSTimer会对target产生强引用,如果target又对他们产生强引用,那么就会引发循环引用解决方案:1.使用block__weak typeof(self) weakSelf = self;self.timer = [NSTimer sched...

2019-03-26 16:18:17 253

原创 多线程笔记

iOS中常见的多线程方案(后面三个的底层都是基于pthread) 技术方案 简介 语言 线程生命周期 使用频率 pthread - 一套通用的多线程API - 适用于Unix/Linux/Windows等系统 - 跨平台/可移...

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

原创 RunLoop笔记

什么是Runloop?顾名思义,运行循环,在程序运行过程中做一些事情,Runloop也是一个对象。应用范围:1.定时器(Timer)、PerformSelector2.GCD Async Main Queue。//GCD主线程(GCD的子线程是不需要Runloop的3.事件响应、手势识别、界面刷新4.网络请求5.AutoreleasePool如果没有Runloop程序运行完就会结束...

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

原创 封装、继承、多态

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

2019-03-15 15:32:30 202

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

documents,tmp,app,Library。(NSHomeDirectory()),手动保存的文件在documents文件里Nsuserdefaults保存的文件在tmp文件夹里1、Documents 目录:您应该将所有de应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该定期备份的信息。2、AppName.app 目录:这是应用程序的程序包目录,包含应用程序的...

2019-03-15 15:30:29 465

原创 单例模式基本用法

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

2019-03-15 15:29:11 375

原创 Core Data基础概念总结

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

2019-03-15 15:28:05 186

转载 真机调试步骤

真机调试的步骤:1.注册成为苹果开发者(99$)2.登陆苹果开发者主页https://developer.apple.com/membercenter/index.action3.点击Certificates, Identifiers & Profiles4.点击Certificates点击左上角的加号选择iOS App Development >点击下一步直...

2019-03-15 15:26:59 346

转载 网络解析

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

2019-03-15 15:19:43 851

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

注意:先导入SDImageCache.h和SDImageCache.m1.获取缓存方法(NSString *)getSdHuanCun{NSUInteger intg = [[SDImageCache sharedImageCache] getSize];NSString * currentVolum = [NSString stringWithFormat:@"%@",[self f...

2019-03-15 15:00:24 661

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

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

2019-03-15 14:58:03 602

转载 iOS常见面试题总结

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

2019-03-14 11:21:23 391

原创 KVO用法总结

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

2019-03-14 11:15:30 219

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

frame指的是:该view在父view坐标系统中的位置和大小(参照点是父view的坐标系统)bounds指的是:该view在本身坐标系统中的位置和大小(参照点是本身坐标系统)Objective-C的类不可以多重继承;可以实现多个接口(协议);Category是类别;一般情况用分类好,用Category去重写类的方法,仅对本Category有效,不会影响到其他类与原有类的关系。@proper...

2019-03-14 11:12:50 297

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

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

2019-03-14 11:09:52 496

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

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

2019-03-14 10:58:13 1812

原创 alloc原理解读

alloc :分配内存空间,32位的系统占4个字节,64位系统 占8个字节一个NSObject对象占用多少内存?1、系统分配了16个字节给NSObject对象(通过malloc_size函数获得)2、但NSObject对象内部只使用过了8个字节的空间(64bit环境下,可以通过class_getinstanceSize函数获得)iOS 是小端模式 从小到大读 0x代表16进制,0x000...

2019-03-14 10:53:25 1096

原创 KVC用法

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

2019-03-14 10:50:51 275

原创 category分类和class extension 类扩展

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

2019-03-14 10:48:31 457

原创 +load方法、+initialize方法

load概述:1.Category中有load方法2.load方法在runtime加载类、分类的时候调用3.load方法可以继承,但是一般情况下不会主动去调用load方法,都是让系统自动调用+load方法1、+load方法会在runtime加载类、分类是调用2、每个类、分类的+load,在程序运行过程中只调用一次3、调用顺序:(1)先调用类的+load按照编译先后顺序调用(先编译...

2019-03-14 10:47:06 370

原创 Block使用方法总结

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

2019-03-14 10:43:09 1594

深拷贝拷贝的是内容,浅拷贝拷贝的是指针

深拷贝拷贝的是内容,浅拷贝拷贝的是指针。学习笔记分享。

2019-03-18

多线程学习笔记

多线程学习笔记,通过平时的学习所做的一些笔记,希望对广大同仁有所帮助

2019-03-18

iOS常用框架

iOS常用框架万能框架,包含常用的轮播、瀑布流、网络请求、自适应、顶部菜单等等

2019-03-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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