<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[王俊岭的博客]]></title><description><![CDATA[分享, 才能促进世界更美好]]></description><link>https://blog.youkuaiyun.com/wangjunling888</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wangjunling888]]></copyright><item><title><![CDATA[iOS面试题总结-未完待续]]></title><link>https://blog.youkuaiyun.com/wangjunling888/article/details/107315900</link><guid>https://blog.youkuaiyun.com/wangjunling888/article/details/107315900</guid><author>wangjunling888</author><pubDate>Mon, 13 Jul 2020 14:05:54 +0800</pubDate><description><![CDATA[iOS面试总结
1. 网络


HTTP协议(HyperText Transfer Protocol)的请求和响应

请求: 请求头, 请求行, 请求体

请求行: 指定请求方法, 请求路径 协议版本等信息
请求头: 描述客户端环境, 例如: host要请求的主机地址,  UserAgent客户端类型, Accept 可接受数据类型, Accept_language可接受语言
请求体: 客户端要发送的具体数据, 例如上传时的上传数据


响应: 状态行,响应头, 响应数据

状态行: 包含http协议版本,]]></description><category></category></item><item><title><![CDATA[Masonry框架源码分析]]></title><link>https://blog.youkuaiyun.com/wangjunling888/article/details/106191871</link><guid>https://blog.youkuaiyun.com/wangjunling888/article/details/106191871</guid><author>wangjunling888</author><pubDate>Mon, 18 May 2020 14:11:34 +0800</pubDate><description><![CDATA[相信大多数iOS开发者对Masonry框架并不陌生 , 本文是笔者通读Masonry的代码之后的一篇总结, 也希望可以帮助大家更好的理解该框架. 怎奈笔者才疏学浅, 如有遗漏或错误也欢迎大家评论区指出, 大家一起进步!
iOS布局的演进
在说Masonry, 先简单介绍一下iOS开发屏幕适配的发展过程. 在iPhone3Gs/4/4s时代, 手机屏幕尺寸都是一样的, 对于开发者来说基本不用适配,彼时的屏幕布局基本都是采用frame,  但是随着iPad的出现, frame布局便不能满足需求, 苹果开始推出A]]></description><category></category></item><item><title><![CDATA[旧款Mac开启随航(sideCar)功能]]></title><link>https://blog.youkuaiyun.com/wangjunling888/article/details/102817152</link><guid>https://blog.youkuaiyun.com/wangjunling888/article/details/102817152</guid><author>wangjunling888</author><pubDate>Wed, 30 Oct 2019 13:11:49 +0800</pubDate><description><![CDATA[看到这个标题, 不得不吐槽苹果, 命名软硬件都可以支持, 但是故意让旧设备不支持这个功能,  真是鸡贼, 吐槽完毕!
本文参考博客: http://dev.zeppel.eu/luca/SidecarCorePatch, 里面是英文版的, 所以我总结翻译以下几点:


适用电脑  imac 2015 later之前的设备,  MacBook 2016之前的设备


当前系统是最新系统macOS 1...]]></description><category></category></item><item><title><![CDATA[解决Xcode 11 / iOS 13 的坑]]></title><link>https://blog.youkuaiyun.com/wangjunling888/article/details/102504650</link><guid>https://blog.youkuaiyun.com/wangjunling888/article/details/102504650</guid><author>wangjunling888</author><pubDate>Fri, 11 Oct 2019 16:56:03 +0800</pubDate><description><![CDATA[Xcode 运行不了模拟器和真机
这个问题在升级Xcode 10的时候其实已经解决过一次, 根本原因就是Xcode10 开始苹果删除了几个C++ 运行库
报错如下:
dyld: Library not loaded: /usr/lib/libstdc++.6.dylib
  Referenced from: *************************
  Reason: no suitab...]]></description><category></category></item><item><title><![CDATA[细说OC中的KVO]]></title><link>https://blog.youkuaiyun.com/wangjunling888/article/details/82422463</link><guid>https://blog.youkuaiyun.com/wangjunling888/article/details/82422463</guid><author>wangjunling888</author><pubDate>Wed, 05 Sep 2018 13:39:21 +0800</pubDate><description><![CDATA[KVO这个特异功能相信很多人都应该熟知, 就算工作时没有用到, 那么面试的时候肯定被面试官提到过, 虽然算不上黑魔法, 但是了解一下实现原理, 对我们还是有很大帮助的, 下面笔者将一步一步深挖KVO的实现原理!

创建一个Person类, 添加一个属性name,  当然你可以添加任何你想要的属性, 这里笔者就用name来做演示使用

@interface Person : NSObject
@pr...]]></description><category></category></item><item><title><![CDATA[iOS自动布局之VisualFormat]]></title><link>https://blog.youkuaiyun.com/wangjunling888/article/details/81784416</link><guid>https://blog.youkuaiyun.com/wangjunling888/article/details/81784416</guid><author>wangjunling888</author><pubDate>Fri, 17 Aug 2018 23:38:15 +0800</pubDate><description><![CDATA[VFL是苹果推出的用来AutoLayout布局的一门比较形象的语言, 本身为字符串,虽然用起来比较麻烦,  但是相比直接使用苹果的另一个套布局方案要少写一些代码,  那么问题来了, github上那么多自动布局的框架, 简单又好用, 为什么要用这么复杂的代码去布局呢,  之前我也这么想, 直到有一天自己想封装一个框架的的时候才发现, 不能处处依赖别人的框架去封装, 因为这样的话, 你封装的框架几乎...]]></description><category></category></item><item><title><![CDATA[正则表达式没那么难]]></title><link>https://blog.youkuaiyun.com/wangjunling888/article/details/81460168</link><guid>https://blog.youkuaiyun.com/wangjunling888/article/details/81460168</guid><author>wangjunling888</author><pubDate>Mon, 06 Aug 2018 19:52:17 +0800</pubDate><description><![CDATA[正则表达式没那么难


[]  表示一位字符

[a] 表示字母a 

String regex = &quot;[a]&quot;

System.out.println(&quot;a&quot;.matches(regex));//true

System.out.println(&quot;aa&quot;.matches(regex));//false

System.out.println(&quot;b&quot;.matches(regex)); //fals...]]></description><category></category></item><item><title><![CDATA[Flutter 安装 (Mac环境)]]></title><link>https://blog.youkuaiyun.com/wangjunling888/article/details/80768285</link><guid>https://blog.youkuaiyun.com/wangjunling888/article/details/80768285</guid><author>wangjunling888</author><pubDate>Fri, 22 Jun 2018 00:47:05 +0800</pubDate><description><![CDATA[Flutter 安装

今天偶然看到一个公众号写了一篇关于Flutter  的文章, 感觉挺好, 所以就来尝试一下,  整个安装过程挺简单, 但也不是特别顺利, 因为我自己使用的是Mac系统所以这里所有操作都是Mac系统下的操作


安装Flutter SDK

编写你的第一个 Flutter App 这篇文章有SDK和编辑器的下载方式,  

我这里推荐使用git下载

//1.终端中输入以下指...]]></description><category></category></item><item><title><![CDATA[iOS开发如何判断当前控制器进出栈状态]]></title><link>https://blog.youkuaiyun.com/wangjunling888/article/details/80696945</link><guid>https://blog.youkuaiyun.com/wangjunling888/article/details/80696945</guid><author>wangjunling888</author><pubDate>Thu, 14 Jun 2018 18:51:27 +0800</pubDate><description><![CDATA[-(void)viewWillDisappear:(BOOL)animated {
    NSInteger index = [self.navigationController.viewControllers indexOfObject:self];
    if(index == NSNotFound) {
        //即将出栈，销毁

    } else {
        //...]]></description><category></category></item><item><title><![CDATA[友盟系模块化升级遇到的问题]]></title><link>https://blog.youkuaiyun.com/wangjunling888/article/details/80371598</link><guid>https://blog.youkuaiyun.com/wangjunling888/article/details/80371598</guid><author>wangjunling888</author><pubDate>Sat, 19 May 2018 09:25:34 +0800</pubDate><description><![CDATA[友盟系模块化升级遇到的问题

好久没有更新过pod,  最近由于新需求添加了一个框架所以进行pod更新, 不更新不知道, 更新了吓一跳呀,  Command + B 编译一下一大堆报错, 天啊, 我做错了什么? 去友盟官网翻看了文档才发现原来是 友盟把微信SDK给精简了,  删除了支付模块,  这还不算, 更重要的是pod库导入都变化了, 仔细阅读文档, 原来是友盟这边进行了组件化划分, 看起来是...]]></description><category></category></item><item><title><![CDATA[UITableView删除行到最后一条时崩溃]]></title><link>https://blog.youkuaiyun.com/wangjunling888/article/details/79648110</link><guid>https://blog.youkuaiyun.com/wangjunling888/article/details/79648110</guid><author>wangjunling888</author><pubDate>Thu, 22 Mar 2018 00:01:00 +0800</pubDate><description><![CDATA[UITableView删除行到最后一条时崩溃

很少用到UI删除, 今天遇到一个小坑, 下面这行代码调用就会报错



//删除ui内容
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
 //删除数据源
[self.dataArr removeObj...]]></description><category></category></item><item><title><![CDATA[git 撤销更改]]></title><link>https://blog.youkuaiyun.com/wangjunling888/article/details/79481212</link><guid>https://blog.youkuaiyun.com/wangjunling888/article/details/79481212</guid><author>wangjunling888</author><pubDate>Thu, 08 Mar 2018 10:46:10 +0800</pubDate><description><![CDATA[git 撤销更改

总结一下希望以后不再记混淆, 也希望看到这里的同学不犯同样的错, 这里主要介绍一下几种错误的解决方案:


已修改未暂存内容的撤销
已暂存未提交内容的撤销
已提交未推送内容的撤销
已推送服务器内容的撤销


以上几种情况几乎覆盖到工作中常用的所有情况, 当然你要是有更复杂的情况, 那就只能再想想别的办法, 因为我这边只有两个人同时开发, 所以遇到的情况就这些, 下面说一下解决方...]]></description><category></category></item><item><title><![CDATA[ipa包上传itunes store失败]]></title><link>https://blog.youkuaiyun.com/wangjunling888/article/details/79374200</link><guid>https://blog.youkuaiyun.com/wangjunling888/article/details/79374200</guid><author>wangjunling888</author><pubDate>Mon, 26 Feb 2018 10:32:13 +0800</pubDate><description><![CDATA[昨天打包上传ipa包, 遇到了故障, 开始以为是网络问题, 但是切换了各种网络之后发现这个不是网络问题, 我推测应该是苹果在mac上更新了什么东西,  换用application Loader 工具上传还是不行,  但是比Xcode直接上传的好处是 可以看到错误日志



An error occurred while starting bundles for the software updat...]]></description><category></category></item><item><title><![CDATA[JPush的坑]]></title><link>https://blog.youkuaiyun.com/wangjunling888/article/details/62090668</link><guid>https://blog.youkuaiyun.com/wangjunling888/article/details/62090668</guid><author>wangjunling888</author><pubDate>Tue, 14 Mar 2017 23:31:14 +0800</pubDate><description><![CDATA[极光推送的坑, 竟然没有在官方文档中找到解决方案]]></description><category></category></item><item><title><![CDATA[iOS支付宝AlipaySDK与阿里百川反馈YWFeedbackFMWK冲突]]></title><link>https://blog.youkuaiyun.com/wangjunling888/article/details/54288599</link><guid>https://blog.youkuaiyun.com/wangjunling888/article/details/54288599</guid><author>wangjunling888</author><pubDate>Mon, 09 Jan 2017 14:23:11 +0800</pubDate><description><![CDATA[总结一下从昨天晚上到今天上午踩过的坑, 希望能对大家有所帮助!很多时候很多大事件貌似和我们没有关系, 但是冥冥中可能某天, 你就会感受到某个事件的影响,  比如阿里巴友盟收购了,  之前还觉得只是一个大公司收购一个小公司, 和自己没有啥关系, 但是慢慢地, 有些问题就开始暴露了,  前段时间,  友盟用户反馈sdk 突然停止服务,  给了一个阿里百川的服务, 让去迁移, 然后作为开发者,  你可以选]]></description><category></category></item><item><title><![CDATA[OC字符串中特殊字符的修剪]]></title><link>https://blog.youkuaiyun.com/wangjunling888/article/details/54136991</link><guid>https://blog.youkuaiyun.com/wangjunling888/article/details/54136991</guid><author>wangjunling888</author><pubDate>Fri, 06 Jan 2017 13:24:13 +0800</pubDate><description><![CDATA[最近公司项目中需要字符串修剪, 而且项目中每个地方的需求还不太一样, 所以写了下面的一个分类,  感觉挺好用分享出来给大家, 希望遇到同样问题的同志少花时间, 注释比较清晰, 我就废话不多说了,  看代码]]></description><category></category></item><item><title><![CDATA[Mac系统原生支持NTFS格式硬盘]]></title><link>https://blog.youkuaiyun.com/wangjunling888/article/details/53906188</link><guid>https://blog.youkuaiyun.com/wangjunling888/article/details/53906188</guid><author>wangjunling888</author><pubDate>Wed, 28 Dec 2016 10:22:48 +0800</pubDate><description><![CDATA[​   所有的办法都是在没有办法的情况下才能找到,  之前一直用的 Paragon NTFS, 当然虽然是程序员有两种方式, 一种就是支持自己的事业,用收费的, 另一种就是发挥自己的特长, 去破解.  无奈承担不起Paragon NTFS每个版本更新都要重新购买的费用, 如果一次购买终身有效19.9刀结果面前可以接受.  但是破解版的终归不是最终的解决方案, 系统升级或软件升级之后就会一堆头疼的事,]]></description><category></category></item><item><title><![CDATA[YYWebImage加载短链图片]]></title><link>https://blog.youkuaiyun.com/wangjunling888/article/details/52982367</link><guid>https://blog.youkuaiyun.com/wangjunling888/article/details/52982367</guid><author>wangjunling888</author><pubDate>Mon, 31 Oct 2016 14:49:53 +0800</pubDate><description><![CDATA[因为公司的图片地址是放在第三方平台上的, 所以链接都比较长, 后端为了使用方便将其转换成了短连接,  那么问题来了, 在安卓和网页端都可以正常打开, 我的iOS图片死活加载不了,  然后在网上各种搜索,  实在是找不到相关的问题,  后来自己摸索终于找到了解决方案,  下面说一下, 希望对有同样需求的同学有帮助!主要原因就是其默认的接收类型仅仅是图片类型的, 而短连接中间是又一次跳转的, 所以需要修]]></description><category></category></item><item><title><![CDATA[AFN做post请求,参数为数组的坑]]></title><link>https://blog.youkuaiyun.com/wangjunling888/article/details/52592488</link><guid>https://blog.youkuaiyun.com/wangjunling888/article/details/52592488</guid><author>wangjunling888</author><pubDate>Tue, 20 Sep 2016 08:20:31 +0800</pubDate><description><![CDATA[公司后端哥们给了接口文档, 于是就兴致勃勃的开发, 结果有一个接口死活返回不了数据,  检查了上传参数,  里面有个参数需要一个列表, 也就是我们oc中的数组,  数组中全是整型数据, 打印出所有的上传参数之后发现也没啥问题,  于是就找后端的哥们,  后端那哥们以后咬定接口没问题,   他自己测试都没有问题,  非要我再仔细检查,  无奈又检查参数,  这次仔细的检查发现我上传的数组参数是这个样子]]></description><category></category></item><item><title><![CDATA[NSArray]]></title><link>https://blog.youkuaiyun.com/wangjunling888/article/details/52353200</link><guid>https://blog.youkuaiyun.com/wangjunling888/article/details/52353200</guid><author>wangjunling888</author><pubDate>Mon, 29 Aug 2016 15:01:19 +0800</pubDate><description><![CDATA[数组学习总结无论是字符串还是数组亦或是字典, 其实学习过程无外乎 增/删/改/查 四个操作, 下面就分别说一下数组学习中的增删改查的操作1. 创建数组// NSArray 的构造方法
NSArray *array = [[NSArray alloc] initWithObjects:@"123", @"abc", @"abcdefg", nil];
// 在 OC 中字符串有字面量常量, 数组也有字]]></description><category></category></item></channel></rss>