iOS进阶知识
本专栏负责提供一些iOS进阶知识。
Hanrovey
这个作者很懒,什么都没留下…
-
转载 【iOS开发】手写单例
转载地址:单例1、单例用途限制创建,提供全局调用,节约资源和提高性能 static的作用:防止外部访问 @synchronized的作用:为了防止多线程同时访问对象,造成多次分配内存空间,所以要加上线程锁。单线程操作可以不用。系统单例有:UIApplication、NSNotificationCenter、NSFileManager、NSUserDefaults、NSURLCache 、NSHTTPCookieStorage等#import "SingleInstance.h"@implemen2021-02-26 10:29:237
0
-
原创 pod 插件报错: LoadError - cannot load such file -- cocoapods/command/gen
报错信息:LoadError - cannot load such file – cocoapods/command/gen解决方法:gem install cocoapods-generate2021-02-22 16:28:3923
0
-
转载 【Swift】基于 CocoaPods 的组件二进制化实践
转载地址:基于 CocoaPods 的组件二进制化实践2021-01-13 20:12:2618
0
-
转载 【iOS开发】UML类图
转载地址:UML类图2020-12-17 16:38:1433
0
-
转载 【Swift】WKWebView默认缓存策略与HTTP缓存协议
转载地址:WKWebView默认缓存策略与HTTP缓存协议2020-11-12 16:44:2438
0
-
转载 【Swift开发】使用 Property Wrapper 为 Codable 解码设定默认值
转载地址:使用 Property Wrapper 为 Codable 解码设定默认值2020-11-11 14:55:5671
0
-
原创 【iOS开发】查询创建所有语言的ignore内容
转载地址查询创建所有语言的ignore内容2020-09-27 11:00:3139
0
-
转载 【iOS】iOS 如何让WKWebView侧滑返回时html逐级返回,而不是直接返回到上级控制器?
转载地址iOS 如何让WKWebView侧滑返回时html逐级返回,而不是直接返回到上级控制器?iOS使用WKWebView来加载html页面时,如果html页面只有一级的话,那么侧滑返回没什么问题,但如果html是多级的话,那么侧滑返回时有时就会出现直接返回到上级控制器,而不是返回上一级html页面。这是因为html页面的侧滑返回和导航控制器的侧滑返回发生冲突了,系统无法识别到底是哪一种侧滑返回。WKWebView有一个canGoBack属性(A Boolean value indicating w2020-09-18 16:30:44167
0
-
转载 【iOS】iOS组件化、容器化基础之cocooapods使用系列文章
转载地址:iOS组件化、容器化基础之cocooapods使用2020-09-09 14:17:1064
0
-
转载 【Swift】WebViewJavaScriptBridge深入剖析
WebViewJavaScriptBridge深入剖析2020-08-31 16:30:4547
0
-
转载 【iOS】深入理解Http请求、DNS劫持与解析。
转载地址:深入理解Http请求、DNS劫持与解析。2020-07-17 10:43:19132
0
-
转载 【iOS】58crash日志解析方案介绍
58crash日志解析方案介绍2020-07-09 17:20:4262
0
-
转载 【Swift】self和Self
转载地址:Swift中self和Self理解 Swift 中的元类型:.Type 与 .selfSelf 关键字使用场景只有下面两种:1、Self可以用于协议(protocol)中限制相关的类型2、Self可以用于类(Class)中来充当方法的返回值类型...2020-07-08 23:06:1668
0
-
转载 【iOS开发】ipa安装到手机上的三种方式
转载地址:ipa安装到手机上的三种方式ipa包 安装三种方式,优先推荐第一种方法(通过iTunes安装)。1、通过iTunes安装数据线连接手机之后,会自动连接iTunes,(第一次连接的时候会提示是否信任此电脑,记得点是)。在iTunes里面能看到手机连接上了,直接将ipa安装包拖到iTunes里面,如果成功则可以安装。目前实测iphoneX能通过这种方式安装成功,其他两款手机失败。2、通过Xcode安装在Xcode的导航栏上选择window->Devices and Simulators2020-07-08 11:26:221262
0
-
转载 【iOS开发】抓包工具Charles的使用教程
抓包工具Charles的使用教程2020-07-03 23:09:4960
0
-
转载 【iOS】获取App Store上的.ipa包
获取App Store上的.ipa包2020-07-02 16:11:29267
0
-
转载 【iOS】IPAPatch: 免越狱调试、修改第三方App
https://weibo.com/ttarticle/p/show?id=2309404086977153611942https://www.jianshu.com/p/61175a7c517a2020-07-02 15:36:14197
0
-
转载 【Swift】[译]RxSwift + MVVM: 怎样搞定 ViewModels,冷热信号
[译]RxSwift + MVVM: 怎样搞定 ViewModels2020-06-17 23:11:42178
0
-
转载 【iOS】程序 main 函数之前发生了什么
转载地址:iOS 程序 main 函数之前发生了什么1、加载动态链接库2、加载二进制文件3、runtime 与 +load2020-06-15 22:38:4653
0
-
转载 【iOS】Zombie Objects(僵尸对象)原理探索
iOS Zombie Objects(僵尸对象)原理探索总结:系统在回收对象时,可以不将其真的回收,而是把它转化为僵尸对象。这种对象所在的内存无法重用,因此不可遭到重写,所以将随机变成必然。系统会修改对象的 isa 指针,令其指向特殊的僵尸类,从而使该对象变为僵尸对象。僵尸类能够相应所有的选择器,响应方式为:打印一条包含消息内容及其接收者的消息,然后终止应用程序。...2020-06-15 22:02:22255
0
-
转载 【网络基础】详解http和https的作用与区别
转载地址:详解http和https的作用与区别PS: https就是http和TCP之间有一层SSL层,这一层的实际作用是防止钓鱼和加密。防止钓鱼通过网站的证书,网站必须有CA证书,证书类似于一个解密的签名。另外是加密,加密需要一个密钥交换算法,双方通过交换后的密钥加解密。http与https有什么区别呢?本文详解http和https的区别。 只要上过网的朋友一定接触过“HTTP”,每次开网页的时候,不管是什么网址,其前面都会出现HTTP字样,比如 “http://www.j...2020-06-15 21:34:44302
0
-
转载 【Swift】Swift面向协议编程初探
Swift面向协议编程初探2020-06-15 21:02:2439
0
-
转载 【iOS】KVC原理剖析
KVC原理剖析2020-06-15 17:19:1346
0
-
转载 【Swift】 struct与class
转载地址:理解Swift中struct和class在不同情况下性能的差异Swift 中的 struct 和 class我们主要从三个性能维度来比较struct和class的性能差异内存分配引用计数方法派发2020-06-15 13:30:3464
0
-
转载 【iOS】深入浅出 GCD 之 dispatch_once
深入浅出 GCD 之 dispatch_once总结dispatch_once 用 原子性 操作block执行完成标记位,同时用 信号量 确保只有一个线程执行block,等block执行完再唤醒所有等待中的线程。dispatch_once常被用于创建单例、swizzeld method等功能。...2020-06-14 22:00:4455
0
-
转载 【iOS】理解 ARC 实现原理(经典)
转载地址:理解 ARC 实现原理2020-06-14 20:18:32182
0
-
转载 【iOS】category和方法覆盖,如何让同名方法可以全部被访问?
转载地址:美团研发组-iOS category内部实现原理怎么调用到原来类中被category覆盖掉的方法?对于这个问题,我们已经知道category其实并不是完全替换掉原来类的同名方法,只是category在方法列表的前面而已,所以我们只要顺着方法列表找到最后一个对应名字的方法,就可以调用原来类的方法:Class currentClass = [MyClass class];MyClass *my = [[MyClass alloc] init]; if (currentClass) {2020-06-14 19:48:25466
0
-
转载 【iOS】一文全解iOS通知机制(经典收藏)
NSNotification是同步还是异步?和delegate相比有什么区别,效率呢?默认是同步的2020-06-14 19:36:3365
0
-
转载 【iOS】EXC_BAD_ACCESS小结
转载地址:EXC_BAD_ACCESS小结简单的理解:当遇到了 EXC_BAD_ACCESS 异常,意味着 访问了一个已经被释放的内存区域 。指针层面理解:从C、OC语言来解释,我们平时所操作的对象其实是一个指针,指针是指向另一块存储区域的变量。当向一个对象发送消息,指向这个对象的指针需要被使用,也就是你获得了指针指向的内存地址并且可以访问该内存块的值。当系统不再为你映射该内存块时,换句话说,该内存块已经不能够被你所使用,则不可以再次访问该内存块。 如果再次访问这块内存,发生这种情况时,内核会发送一2020-06-14 19:16:4250
0
-
转载 【iOS】performSelector和直接调用方法的区别
performSelector和直接调用方法的区别2020-06-14 16:41:4081
0
-
转载 【iOS开发】Native混编Flutter交互实践
参考文章:iOS Native混编Flutter交互实践Flutter中文网2020-06-14 13:09:4264
0
-
转载 【iOS】动画(Core Animation)总结
转载地址iOS动画(Core Animation)总结2020-06-12 12:40:4856
0
-
转载 【iOS开发】微信读书-组件化方案探索 Mediator中间人模式
iOS 组件化方案探索2020-06-12 00:22:0176
0
-
转载 【iOS】微信读书 性能优化总结
转载地址:微信读书 iOS 性能优化总结性能问题的解决方法1、优化业务流程2、合理的线程分配由于 GCD 实在太方便了,如果不加控制,大部分需要抛到子线程操作都会被直接加到 global 队列,这样会导致两个问题:1.开的子线程越来越多,线程的开销逐渐明显,因为开启线程需要占用一定的内存空间(默认的情况下,主线程占1M,子线程占用512KB)。2.多线程情况下,网络回调的时序问题,导致数据处理错乱,而且不容易发现。为此,我们项目定了一些基本原则。1.UI 操作和 DataSource2020-06-11 23:37:31132
0
-
转载 【Swift】深入理解 Swift 方法派发机制
转载地址:深入理解 Swift 派发机制2020-06-11 12:43:23102
0
-
转载 【iOS】weak底层实现原理
问:当weak指向的对象被释放时,如何让weak指针置为nil的呢?1、调用objc_release2、因为对象的引用计数为0,所以执行dealloc3、在dealloc中,调用了_objc_rootDealloc函数4、在_objc_rootDealloc中,调用了object_dispose函数5、调用objc_destructInstance6、最后调用objc_clear_deallocating,详细过程如下:a. 从weak表中获取废弃对象的地址为键值的记录b. 将包含在记录2020-06-10 12:44:0758
0
-
原创 【iOS开发】for in 可变数组 崩溃
该问题来自一道笔试题:一、执行下面代码会发生什么?什么解决? NSMutableArray *array = [NSMutableArray arrayWithObjects: @"122", @"333", @"444", nil]; for (NSString *string in array) { [array removeObject: string]; }答:会崩溃,提示 NSGenericException 异常。出现下面的报错信息**2020-06-09 11:53:49235
0
-
转载 【iOS开发】常用5种数据存储方式
iOS应用数据存储的常用方式xml属性列表(plist)归档Preference(偏好设置)NSKeyedArchive归档(NSCoding)SQLiteCore Data转载地址:https://www.cnblogs.com/HJiang/p/4197199.html2020-06-09 11:16:2371
0
-
原创 【iOS】MD5 与Base64 的区别
MD5·不可逆性。·任意长度的明文字符串,加密后得到的密文字符串是长度固定的。Base64·可逆性。·可以将图片等二进制文件转换为文本文件。·可以把非ASCII字符的数据转换成ASCII字符,避免不可见字符。...2020-06-09 11:10:5857
0
-
原创 【iOS】Swift和OC协议的区别?为何Swift是面向协议的?
一、共同点本质都是抽取不同类的共同方法和属性(声明),供遵循协议的类或对象使用。都可以通过定义协议实例deleagate,来实现委托代理模式。PS:类比继承的概念,继承父类的方式比较险隘,子类和父类只能为同一基类,且方法都有实现,需在子类中override,并不能把方法和属性完全独立出来,且不能多继承。二、区别(核心)OC中的协议:1、更单纯的受限于委托代理的含义,多用于跨类的传值和回调通知。Swift的协议:1、Swift可以通过协议extension扩展,缺省实现协议的方法(OC不行)。2020-06-09 11:04:17535
0