
iOS
iOS学习
小码狼
失业了也不能当咸鱼,坚持每天学习
展开
-
Swift开发总结
声明一个静态的常量属性shared,它是Singleton类型的单一实例。: 将构造器设为private,防止外部直接创建Singleton类的新实例。在需要使用单例实例的地方,直接通过进行访问和操作。: 由于shared属性是静态的常量,在多线程环境下也能保证只有一个单例实例。Singleton类的实例会在第一次访问shared属性时才被创建,节省资源。: 单例类可以像普通类一样添加属性和方法,满足不同的需求。: 由于构造器是private的,可以通过依赖注入的方式来测试使用单例的类。原创 2024-07-23 16:27:11 · 979 阅读 · 0 评论 -
OC桥接Swift学习记录
OC调用swift: 1.在OC类,引用#import "weoil-Swift.h" 2.swift类的 变量 方法 前面要加上 @objcswift调用OC: 1.weoil-Bridging-Header 这个头文件是用来放swift要用到OC所用到的类 2.swift可以继承OC类 3.oc的方法在swift里面调用,可以换方法名:例子如下 -(void)eat NS_SWIFT_NAME(myE原创 2022-07-05 15:59:45 · 1105 阅读 · 0 评论 -
iOS 3DTouch的小细节
在App启动后,添加3DTouch的快捷入口,代码如下:NSMutableArray *arrShortcutItem = (NSMutableArray *)[UIApplication sharedApplication].shortcutItems;NSArray *typeArr = @[@"com.zhang.xxx.addOil",@"com.zhang.xxx.daijia",@"com.zhang.xxx.huafei"];UIApplicationShortcutItem *s原创 2022-02-23 10:26:58 · 1472 阅读 · 0 评论 -
iOS Runtime
1.objc_object2.objc_class3.isa指针ISA指向4.cache_tcache_t数据结构5.class_data_bits_t6.class_rw_t7.class_ro_t8.method_t9.类型编码const char *类型10.总结:11.对象类对象元类对象...原创 2018-12-19 21:58:46 · 68 阅读 · 1 评论 -
iOS 内存管理
1.内存布局堆栈:方法调用堆:通过ALLOC等分配的对象BSS:未初始化的全局变量等数据:已初始化的全局变量文本:程序代码2.内存管理方案TaggedPointer:小对象(NSNumber)(非指针型isa)NONPOINTER_ISA 64位架构iOS应用占用64位,本身32 40就够用,为了提高内存利用,剩余比特位存储内存管理相关内容散...原创 2018-12-19 22:00:35 · 60 阅读 · 1 评论 -
iOS 第三方框架
1.AFNetworking主要类关系图2.SDWebImage3.ReactiveCocoa4.AsyncDisplayKit基本原理:...原创 2018-12-23 19:02:19 · 137 阅读 · 1 评论 -
iOS中的锁
OSSpinLock自旋锁(虽然已经被证明不安全优先级翻转),性能最高的锁。原理很简单,就是一直做而忙等。它的缺点是当等待时会消耗大量CPU资源,所以它不适用于较长时间的任务对于内存缓存的存取来说,它非常合适。轻量级,比如sideTable表的访问 dispatch_semaphore(同步)dispatch_semaphore是GCD用来同步的一种方式。允许通过等待/信号的信号事...原创 2018-12-25 22:07:25 · 798 阅读 · 0 评论 -
iOS Block
1.什么是块2.block的本质3.截获变量4 .__块修饰符5.block的内存管理6.block的复制操作:7。8.copy9.栈上__block变量的拷贝操作10 .__转发存在的意义11.block的循环引用...原创 2018-12-19 21:59:12 · 71 阅读 · 0 评论 -
iOS基础:关键字(static,Extern,const)
Static关键字:局部变量:1.在内存中只初始化一次 2.延长生命周期,程序结束才销毁全局变量:1.作用域仅限当前文件,外部类使用Extern关键字也无法访问。作用于函数:对函数连接产生影响,使函数只在本文件内部有效,可以不用担心与其它文件的同名函数产生告饶。使用extern则使其可以让外部访问const关键字:修饰变量,含义是:const修饰的变量值是不可变的,...原创 2019-05-07 14:45:01 · 143 阅读 · 0 评论 -
iOS OC
1.你用分类做了哪些事情?声明私有方法 分解体积庞大的类 把framework私有方法公开化2.分类的特点?运行时决议(扩展是编译) 可以为系统类添加分类 分类添加的方法可以“覆盖”原类方法3.分类可以添加哪些内容?实例方法 类方法 协议 属性(get方法set方法 添加实例变量需要通过关联技术)4.分类结构体5.分类加载调用栈_objc_in...原创 2018-12-19 22:00:17 · 74 阅读 · 1 评论 -
iOS UI
1.数据源同步方案?并发访问,深拷贝,记录操作(耗内存,记录操作);串行访问,排版和操作全部在一个子线程串行队列操作(任务多,会延时)2.UIView和CALayer的关系?的UIView只负责处理触摸等事件,参与响应链; CALayer的负责显示内容的内容uiview包含一个calayer和一个bgcolor(bgcolor对层同名属性方法的包装)显示部分是图层的内容(后备...原创 2018-12-19 21:57:41 · 79 阅读 · 1 评论 -
策略模式的一点思虑
概念:原创 2018-06-12 17:11:04 · 189 阅读 · 0 评论 -
过过 适配器模式
问题场景:1.我买的日版的iPhone在中国无法使用电信卡,没有信号,这时候我就需要一个卡贴,卡贴就是今天要讲的类似的适配器。 2.在客户端中,某个界面显示的是红色,而红色是由服务器返回你的一个二进制值,某天服务器开发的人换了,他把二进制值换成了dui'y...原创 2018-07-02 19:05:50 · 163 阅读 · 0 评论 -
NSSet与NSArray区别
NSSet到底什么类型,其实它和NSArray功能性质一样,用于存储对象,属于集合; NSSet,NSMutableSet类声明编程接口对象,无序的集合,在内存中存储方式是不连续的,不像NSArray(是有序的集合)类声明编程接口对象是有序集合,在内存中存储位置是连续的; NSSet和我们常用NSArray区别是:在搜索一个一个元素时NSSet比NSArray效率高,主要是它用到...转载 2018-08-15 15:43:04 · 1059 阅读 · 0 评论 -
iOS离屏渲染之优化分析
iOS离屏渲染之优化分析在进行iOS的应用开发过程中,有时候会出现卡顿的问题,虽然iOS设备的性能越来越高,但是卡顿的问题还是有可能会出现,而离屏渲染是造成卡顿的原因之一。因此,本文主要分析一下离屏渲染产生的原因及避免的方法,最后介绍一下Xcode自带的分析离屏渲染的工具Instruments的使用。UIView和CALayer关系UIView继承自UIResponder,可以处理系统...转载 2018-08-08 17:53:30 · 182 阅读 · 0 评论 -
iOS 多线程
1.怎么用GCD实现多读单写dispatch_barrier_async2.ios系统为我们提供的几种多程序技术各自的特点是怎样的?GCD:实现一些简单的线程同步,子线程的分派,包括一些类似于多读单写nsoperation:比如adnetworking sdwebimage特点比如对任务的状态进行控制,包括添加依赖,移除依赖nsthread:实现常驻线程3.nsoperat...原创 2018-12-19 21:58:19 · 95 阅读 · 1 评论 -
iOS RunLoop
1.什么是RunLoop?RunLoop是通过内部维护的事件循环来对事件、消息进行管理的一个对象没有消息需要处理时,休眠以避免资源占用 (用户态 变成 内核态(进程))有消息需要处理时,离开被唤醒 (内核态 变成 用户态)2.RunLoop的数据结构NSRunLoop(foundation)是CFRunLoop(corefoundation)的封装,提供了面向对象的AP...原创 2018-12-20 08:43:44 · 104 阅读 · 1 评论 -
iOS 网络
1.http介绍请求报文:响应报文2.http的请求方式有哪些?get post head put delete options3.get和post方式的区别(rfc官方文档)get请求参数以?分割拼接到url后面,post请求参数在body里面get参数长度限制2048个字符,post没有限制安全性:不应该引起server端的任何状态变化:...原创 2018-12-21 12:04:27 · 112 阅读 · 1 评论 -
iOS 设计原则和模式
1.单一职责原则:一个类只负责一件事2.开闭原则:对修改关闭,对扩展开放(类不要修改)3.接口隔离原则:使用多个专门的协议,而不是一个庞大臃肿的协议,协议中的方法尽量少(委托,数据源)4.依赖倒置原则:抽象不应该依赖于具体实现,具体实现可以依赖于抽象5.里氏替换原则:父类可以被子类无缝替换,且原有功能不受任何英雄(KVO)6.迪米特法则一个对象应当对其他对象有尽可能少的了解(高...原创 2018-12-21 13:32:02 · 73 阅读 · 0 评论 -
UI架构相关
原创 2018-12-21 14:03:13 · 128 阅读 · 1 评论 -
谈谈MVC-MVP-MVVM的渐进使用和误解
hfhgfjfjhfhjfjhfhj原创 2018-06-26 18:51:12 · 229 阅读 · 0 评论