自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (5)
  • 收藏
  • 关注

转载 dispatch_once造成的死锁问题

在开发中使用单例是最经常不过的事儿了,最常用的就是dispatch_once这个函数,这个函数可以使其参数内的block块只在全局执行一次从而达到目的,不过这个函数要是用的稍微“巧”了的话,就会出问题。比如看下面这段代码:#import "TestA.h"@implementation TestA+(TestA *)shareInstanceA{ static TestA *testa = nil; static dispatch_once_t token; disp

2020-12-27 20:43:37 1139

转载 ios ping服务器

大多数App都严重依赖于网络,一款用户体验良好的的app是必须要考虑网络状态变化的.iOSSinger下一般使用Reachability这个类来检测网络的变化.Reachability这个是苹果开发文档里面的一个类,官方写的,用来判断网络的变化,包括无网络,wifi,和蜂窝三种情况.Reachability类实际上是苹果公司对SCNetworkReachability API的封装,使用方法比较简单,这里不再介绍.说说它的优缺点:优点 使用简单,只有一个类,官方还有Demo,容易上手...

2020-12-22 12:25:07 1640

转载 NSURLProtocol对WKWebView的处理

之前写过一篇文章是关于基于NSURLProtocol做的DNS解析,其中对NSURLProtocol也有了简单的介绍,我们都知道他可以拦截所有基于URL Loading System 中的请求,但是对于WKWebview里面所发出的请求即使他是http/https 也无能为力,先来简单的了解下WKWebView.WKWebviewiOS8以后,苹果推出了新框架Webkit,提供了替换UIWebView的组件WKWebView。各种UIWebView的问题没有了,速度更快了,占用内存少了,一句话,WK

2020-12-21 11:59:00 744

转载 可能是最全的iOS端HttpDns集成方案

1、DNS劫持的危害不知道大家有没有发现这样一个现象,在打开一些网页的时候会弹出一些与所浏览网页不相关的内容比如这样奇(se)怪(qing)的东西图一或者这样图二,其实造成这样的原因就是DNS劫持,在我们正常浏览的网页链接里面被恶意插入一些奇怪的东西。不止是这些,DNS劫持还会对我们的个人信息安全造成很大的伤害,钓鱼网站之类的,也许我们所访问的网站根本不是我们需要的网站,或者根本打不开网页,有时还会消耗我们过多的流量。2、什么是DNS解析现在假如我们访问一个网站www.b

2020-12-21 11:56:58 843

转载 详解KVC,低配版实现

无论是Swift还是Objective-C,KVC的定义都是对NSObject的扩展来实现的(Objective-C中有个显式的NSKeyValueCoding类别名,而Swift没有,也不需要)。所以对于所有继承了NSObject的类型,也就是几乎所有的Objective-C对象都能使用KVC(一些纯Swift类和结构体是不支持KVC的),下面是KVC最为重要的四个方法- (nullable id)valueForKey:(NSString *)key;

2020-12-20 23:20:09 420

转载 NSURLSession最全攻略

NSURLSessionNSURLSession在iOS7中推出,NSURLSession的推出旨在替换之前的NSURLConnection,NSURLSession的使用相对于之前的NSURLConnection更简单,而且不用处理Runloop相关的东西。2015年RFC 7540标准发布了http 2.0版本,http 2.0版本中包含很多新的特性,在传输速度上也有很明显的提升。NSURLSession从iOS9.0开始,对http 2.0提供了支持。NSURLSession由三部分构成:

2020-12-20 23:03:14 3373

转载 iOS事件处理,手势和UIResponder

UIResponderUIResponder是iOS中用于处理用户事件的API,可以处理触摸事件、按压事件(3D touch)、远程控制事件、硬件运动事件。可以通过touchesBegan、pressesBegan、motionBegan、remoteControlReceivedWithEvent等方法,获取到对应的回调消息。UIResponder不只用来接收事件,还可以处理和传递对应的事件,如果当前响应者不能处理,则转发给其他合适的响应者处理。应用程序通过响应者来接收和处理事件,响应者可以是继承

2020-12-20 21:09:26 515

转载 HTTPS验证自签名证书及推荐代码

在开发阶段后台经常使用自签名的证书来部署。但是在iOS中调用的时候就会因为证书不被信任而调用api不成功。这时候我们就需要通过实现某些网络回调函数来自定义证书的验证逻辑。(在iOS中一般通过UrlSession(OC中是NSUrlSession)来进行网络通信,这里以UrlSession为例)。首先我们需要了解几个概念。Challenge     Challenge是计算机安全中的专业术语。字面意思质询。就是为了验证用户身份,向访问者发送一个质询,然后访问者需要提供一个正确的回答以示身份。最简单的就

2020-12-17 10:24:03 743

转载 使用 iMazing 进行沙盒调试

当开发项目有可能进行图片的缓存、清理操作时,我们可能会需要手动去 app 的沙盒里面删除、替换一些内容来进行测试,但是通过代码去目录下查找文件可能不是很方便,也不够直观,这里提供一个方法来方便这个调试过程,使用工具:iMazing + Chrome使用 iMazing 软件,通过 WiFi 或者 USB 将 iOS 设备连接到电脑之后,可以看到如下这样的界面。如果你的 app 是自己构建到设备,而不是通过 App Store 下载的,那么除了 文稿 文件夹以外,应该还可以看见 开发者 文件夹.

2020-12-07 14:13:59 302

转载 ios启动优化:二进制重排原理

什么是page Fault?系统内核给每个进程都提供了一个独立的虚拟地址空间,并且这个地址空间是连续的。这样,进程就可以很方便地访问内存,更确切地说是访问虚拟内存。虚拟地址空间的内部又被分为内核空间和用户空间两部分。并不是所有的虚拟内存都会分配物理内存,只有那些实际使用的虚拟内存才分配物理内存,并且分配后的物理内存,是通过内存映射来管理的。内存映射,其实就是将虚拟内存地址映射到物理内存地址。为了完成内存映射,内核为每个进程都维护了一张页表,记录虚拟地址与物理地址的映射关系。页表实际上存储在 CP

2020-12-06 16:21:35 655

ios swift 直播动画demo

swift的 , 会OC的看无压力 , 直播中送礼物的动画, 写了常见的4种 , 包括 同时收到多个礼物时 , 展示位不够 的处理 , 可以到cocoaChina上找,那里不要积分

2018-07-04

NSArray越界崩溃解决方法

比较完美的解决了数组越界的问题, 在debug模式下会崩溃 , 在release不会崩溃 , 开发过程中 , 方便调试 , 正式环境中 减少崩溃.

2018-05-08

空空如也

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

TA关注的人

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