iOS基础
文章平均质量分 67
永不止步-Fighting
路漫漫其修远兮,吾将上下而求索!
展开
-
git的命令使用大全
pwd命令用于显示当前目录初始化一个Git仓库:git init添加:git add <file>git commit -m <message>查看分支:git branch创建分支:git branch <name>切换分支:git checkout <name>或者git switch <name>...原创 2019-08-27 21:16:53 · 165 阅读 · 0 评论 -
APNS(Apple Push Notification services)
苹果的推送服务APNs基本原理简单来说就是苹果利用自己专门的推送服务器(APNs)接收来自我们自己应用服务器的需要被推送的信息,然后推送到指定的iOS设备上,然后由设备通知到我们的应用程序,设备以通知或者声音的形式通知用户有新的消息。推送的前提是装有我们应用的设备需要向APNs服务器注册,注册成功后APNs服务器会返给我们一个device_token,拿到这个token后我们将这个token发给我...原创 2019-07-05 13:02:33 · 7621 阅读 · 0 评论 -
iOS中View和Layer的区别和联系
iOS中所有view都是用底层的layer来驱动的。view 和它的 layer 之间有着紧密的联系,view 其实直接从 layer 对象中获取了绝大多数它所需要的数据。在 iOS 中也有一些单独的 layer,比如 AVCaptureVideoPreviewLayer 和 CAShapeLayer,它们不需要附加到 view 上就可以在屏幕上显示内容。两种情况下其实都是 layer 在起决定作...原创 2019-07-26 06:17:22 · 1214 阅读 · 1 评论 -
iOS中隐式动画和显示动画的区别
隐式动画一直存在 如需关闭需设置;显式动画是不存在,如需显式 要开启(创建)。显式动画是指用户自己通过beginAnimations:context:和commitAnimations创建的动画。隐式动画是指通过UIView的animateWithDuration:animations:方法创建的动画。隐式动画是系统框架自动完成的。Core Animation在每个runloop周期中自动...原创 2019-07-26 06:39:27 · 3397 阅读 · 0 评论 -
NSTimer不准的问题及解决
原因1、NSTimer被添加在mainRunLoop中,模式是NSDefaultRunLoopMode,mainRunLoop负责所有主线程事件,例如UI界面的操作,复杂的运算,这样就会造成timer的阻塞、2、模式的切换,当创建的timer被加入到NSDefaultRunLoopMode时,此时如果有滑动UIScrollView的操作,runLoop 的mode会切换为TrackingR...原创 2019-08-01 07:31:40 · 2306 阅读 · 0 评论 -
iOS响应者链
响应者对象继承自UIResponder的对象称之为响应者对象。UIApplication、UIWindow、UIViewController和所有继承UIView的UIKit类都直接或间接的继承自UIResponder。UIResponder一般响应以下几种事件:触摸事件(Touch Event)、运动事件(Motion Event)和远程控制事件(Remote-Control Event)。...原创 2019-08-02 11:49:58 · 191 阅读 · 0 评论 -
iOS内购流程
1、同意协议,填写联系方式,添加银行卡信息,填写税务信息2、创建内购项目,选择项目类型(消耗型项目,非消耗型项目,自动续期订阅,非续期订阅),填写项目名称和产品id3、添加沙盒测试员4、代码实现...原创 2019-08-12 19:42:26 · 242 阅读 · 0 评论 -
iOS中weak的底层实现原理
Runtime维护了一个weak表,用于存储指向某个对象的所有weak指针。weak表其实是一个hash(哈希)表,key是所指对象的地址,value是weak指针的地址(这个地址的值是所指对象的地址)数组。weak的实现原理可以概括一下三步:1、初始化时:runtime会调用objc_initWeak函数,初始化一个新的weak指针指向对象的地址。2、添加引用时:objc_init...转载 2019-08-12 21:37:25 · 876 阅读 · 0 评论 -
iOS中的消息发送和消息转发
消息发送OC代码[person read:book];编译后objc_msgSend(person, @selector(read:), book);objc_msgSend的具体流程如下:通过isa指针找到所属类 查找类的cache列表, 如果没有则下一步 查找类的”方法列表” 如果能找到与选择子名称相符的方法, 就跳至其实现代码 找不到, 就沿着继承体系继续向上查...原创 2019-08-12 22:11:47 · 506 阅读 · 0 评论 -
iOS面试题基础
分类、扩展、代理、通知、KVC、KVO、属性关键字一、分类(Category)1、分类的作用?声明私有方法,分解体积大的类文件2、分类的特点?可以为系统类添加分类。在运行时时期,将 Category 中的实例方法列表、协议列表、属性列表添加到主类中后(所有Category中的方法在方法列表中的位置是在主类的同名方法之前的),然后会递归调用所有类的 load 方法,这一切都是在m...原创 2019-06-29 11:17:36 · 15136 阅读 · 0 评论 -
iOS中属性@property中关键字的使用
iOS属性关键字1、@property是什么声明属性的语法,可以快速的为实例变量创建setter和getter方法,并允许通过点语法使用2、@property关键字使用说明strong 赋值时,调用对象的retain方法,使其引用计数加1weak 不增加对象的引用计数,也不持有对象,对象被释放时,自动置为nilcopy 创建一个引用计数为1的对象,通常用于修饰NSStrin...原创 2018-03-22 14:41:43 · 1029 阅读 · 0 评论 -
loadView的调用
1.什么时候被调用?每次访问UIViewController的view(比如controller.view、self.view)而且view为nil,loadView方法就会被调用。2.有什么作用?loadView方法是用来负责创建UIViewController的view。3.默认实现是怎样的?默认实现即[super loadView]里面做了什么事情。(1)它会先去查找...原创 2018-03-16 18:25:25 · 2039 阅读 · 0 评论 -
+load 和 +initialize 的区别
+load1、只要程序启动就会将所有类的代码加载到内存中(在main函数执行之前),放到代码区(无论该类有没有被使用到都会被调用)2、load方法会在当前类被加载到内存的时候调用,有且仅会调用一次3、当父类和子类都实现load方法时,会先调用父类的load方法,再调用子类的load方法4、先加载原始类,再加载分类的load方法5、当子类未实现load方法时,不...原创 2018-03-16 13:46:17 · 906 阅读 · 0 评论 -
iOS基础
1、父类实现深拷贝时,子类如何实现深拷贝。父类没有实现深拷贝时,子类如何实现深拷贝?(1)区别:浅拷贝是指针的拷贝,对一个对象进行浅拷贝,相当于对指向对象的指针进行复制,产生一个新的指向这个对象的指针,那么就是有两个指针指向同一个对象, 这个对象销毁后,两个指针都应该置为空。深拷贝对一个对象进行拷贝,相当于对对象进行复制,产生一个新的对象,那么就有两个指针分别指向两个对象,当一个对象改变或者被...原创 2018-10-19 14:45:53 · 506 阅读 · 0 评论 -
KVC
概述KVC是Key Value Coding的简称,即键值编码,提供一种机制来间接访问对象的属性。而不是通过调用Setter、Getter方法访问。KVC使用(1)获取值 valueForKey: 传入NSString属性的名字valueForKeyPath: 属性的路径,xx.xxvalueForUndefinedKey: 默认实现是抛出异常,可重写这个函数做错误处...原创 2018-10-19 15:11:08 · 2712 阅读 · 0 评论 -
KVO
概述1、键值观察Key-Value-Observer就是观察者模式。利用一个key来找到某个属性并监听其值得改变。其实这也是一种典型的观察者模式。(KVO) 建立在 KVC 之上,它能够观察一个对象的 KVC key path 值的变化。2、观察者模式的定义:一个目标对象管理所有依赖于它的观察者对象,并在它自身的状态改变时主动通知观察者对象。这个主动通知通常是通过调用各观察者对象所提供的接...原创 2018-10-19 15:29:07 · 704 阅读 · 0 评论 -
iOS反射机制
反射机制的三个用途1、获取Class对象Class对象其实本质上就是一个结构体,这个结构体中的成员变量还是自己,这种设计方式非常像链表的数据结构。typedef struct objc_class *Class;struct objc_class { Class isa OBJC_ISA_AVAILABILITY; ...原创 2019-07-01 18:13:14 · 2356 阅读 · 0 评论 -
iOS属性关键字
iOS属性关键字常用的属性关键字:assign,weak,unsafe_unretained,strong,retain ,copy,readonly,readwrite , nonatomic,natomic及 __weak,__block ,@synthesize 和 @dynamic,只有准确的理解了他们的原理,用起来才能得心应手。1、nonatomic、atomiacnonat...原创 2019-07-03 18:29:36 · 2686 阅读 · 0 评论