<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Immanito]]></title><description><![CDATA[滴水穿石，匠人精神]]></description><link>https://blog.youkuaiyun.com/a547720714</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; a547720714]]></copyright><item><title><![CDATA[不在被虐中成长就在被虐中死亡]]></title><link>https://blog.youkuaiyun.com/a547720714/article/details/78484819</link><guid>https://blog.youkuaiyun.com/a547720714/article/details/78484819</guid><author>a547720714</author><pubDate>Thu, 09 Nov 2017 00:09:36 +0800</pubDate><description><![CDATA[今天又被虐了，哎，平时太不注意细节了算是提了个醒吧，记录下来不要再被绊倒第二次
1.视图完整生命周期，First VC是从xib文件创建的，所以走了initWithCoder


2.判断一个数组是否是有序的
3.多个timer在cell上
4.Model有很多属性，使用runtime能少些代码，但是遍历属性数组时很蛋疼，有没有更好的办法]]></description><category></category></item><item><title><![CDATA[iOS静态库和动态库的区别]]></title><link>https://blog.youkuaiyun.com/a547720714/article/details/78474099</link><guid>https://blog.youkuaiyun.com/a547720714/article/details/78474099</guid><author>a547720714</author><pubDate>Wed, 08 Nov 2017 00:18:44 +0800</pubDate><description><![CDATA[一、什么是库？

库是共享程序代码的方式，一般分为静态库和动态库。

二、静态库与动态库的区别？

静态库：链接时完整地拷贝至可执行文件中，被多次使用就有多份冗余拷贝。

动态库：链接时不复制，程序运行时由系统动态加载到内存，供程序调用，系统只加载一次，多个程序共用，节省内存。

三、iOS里静态库形式？

.a和.framework

四、iOS里动态库形式？

]]></description><category></category></item><item><title><![CDATA[翻转二叉树(Invert Binary Tree)]]></title><link>https://blog.youkuaiyun.com/a547720714/article/details/78457263</link><guid>https://blog.youkuaiyun.com/a547720714/article/details/78457263</guid><author>a547720714</author><pubDate>Mon, 06 Nov 2017 14:27:43 +0800</pubDate><description><![CDATA[题目来自LeetCode


Invert a binary tree.
     4
   /   \
  2     7
 / \   / \
1   3 6   9
to
     4
   /   \
  7     2
 / \   / \
9   6 3   1
/**
 * Definition for a binary tree node.
 * public cla]]></description><category></category></item><item><title><![CDATA[语义化版本控制规范（SemVer）]]></title><link>https://blog.youkuaiyun.com/a547720714/article/details/78435547</link><guid>https://blog.youkuaiyun.com/a547720714/article/details/78435547</guid><author>a547720714</author><pubDate>Fri, 03 Nov 2017 14:46:43 +0800</pubDate><description><![CDATA[简介

在软件管理的领域里存在着被称作“依赖地狱”的死亡之谷，系统规模越大，加入的套件越多，你就越有可能在未来的某一天发现自己已深陷绝望之中。

在依赖高的系统中发布新版本套件可能很快会成为恶梦。如果依赖关系过高，可能面临版本控制被锁死的风险（必须对每一个相依套件改版才能完成某次升级）。而如果依赖关系过于松散，又将无法避免版本的混乱（假设兼容于未来的多个版本已超出了合理数量）。当你专案的进]]></description><category></category></item><item><title><![CDATA[解决Xcode 的"Could not insert new outlet connection"问题]]></title><link>https://blog.youkuaiyun.com/a547720714/article/details/78224468</link><guid>https://blog.youkuaiyun.com/a547720714/article/details/78224468</guid><author>a547720714</author><pubDate>Fri, 13 Oct 2017 11:57:26 +0800</pubDate><description><![CDATA[解决方式：
（1）关闭Xcode
（2）到~/Library/Developer/XCode/DerivedData目录中，找到用你的工程名字和一串字母连接起来命名的工程，删除这个文件夹。
（3）重新打开Xcode]]></description><category></category></item><item><title><![CDATA[whose view is not in the window hierarchy!]]></title><link>https://blog.youkuaiyun.com/a547720714/article/details/78084681</link><guid>https://blog.youkuaiyun.com/a547720714/article/details/78084681</guid><author>a547720714</author><pubDate>Mon, 25 Sep 2017 14:25:55 +0800</pubDate><description><![CDATA[在一个 ViewController 里面调用另外一个ViewController 时出现这个错误：

 

该错误一般是由于在 viewDidLoad 里面调用引起的，解决办法是转移到 viewDidAppear 方法里面]]></description><category></category></item><item><title><![CDATA[iOS URLstring中带有中文]]></title><link>https://blog.youkuaiyun.com/a547720714/article/details/78035066</link><guid>https://blog.youkuaiyun.com/a547720714/article/details/78035066</guid><author>a547720714</author><pubDate>Tue, 19 Sep 2017 21:55:11 +0800</pubDate><description><![CDATA[最近抓了一个APP的接口，使用它的数据（原谅我不厚道），在请求的时候用AFNetworking时，将带有汉字的参数直接装入字典请求，没什么问题，也就没有在意，但是当自己用string转NSURL去请求HTML页面的时候，怎么也加载不出来，带汉字的URL直接copy到浏览器也可以打开，一时懵逼，思来想去，Charles中抓到的接口里显示的不是汉字，时带有%的编码，只有这个地方可能出问题了，于是又ge]]></description><category></category></item><item><title><![CDATA[CocoaPods安装]]></title><link>https://blog.youkuaiyun.com/a547720714/article/details/78016859</link><guid>https://blog.youkuaiyun.com/a547720714/article/details/78016859</guid><author>a547720714</author><pubDate>Mon, 18 Sep 2017 10:55:20 +0800</pubDate><description><![CDATA[安装rubyruby -e &quot;$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)&quot;升级rubysudo gem update --system移除源gem sources --remove https://rubygems.org/更换源gem source -a https://gems.ruby-china.org/查看更...]]></description><category></category></item><item><title><![CDATA[iOS系统的各种设备识别码]]></title><link>https://blog.youkuaiyun.com/a547720714/article/details/77168413</link><guid>https://blog.youkuaiyun.com/a547720714/article/details/77168413</guid><author>a547720714</author><pubDate>Mon, 14 Aug 2017 20:08:41 +0800</pubDate><description><![CDATA[1.UDID 全称Unique Device Identifier，顾名思义，苹果iOS设备的唯一识别码，由40个字符的字母和数字组成，为了保护隐私苹果已经禁止读取这个标识了。
2.UUID 全称Universally Unique Identifier，基于iOS上某个单个的应用程序，只要用户没有完全删除应用程序，则这个UUID在用户使用期间一直保持不变，如果用户删除了这个应用程序，然后再重新]]></description><category></category></item><item><title><![CDATA[CSAPP:优化程序性能(四)]]></title><link>https://blog.youkuaiyun.com/a547720714/article/details/73549912</link><guid>https://blog.youkuaiyun.com/a547720714/article/details/73549912</guid><author>a547720714</author><pubDate>Wed, 21 Jun 2017 22:00:47 +0800</pubDate><description><![CDATA[了解一些限制程序性能的因素
一. 寄存器溢出
如果我们的并行度P超过了可用寄存器的数量，那么编译器就会通知溢出，将某些临时值存放在内存中，通常是运行时堆栈上分配空间，聚个例子，当把combine6的多累积变量模式扩展到k=10或者k=20的时候，我们会发现这种循环展开程度没有改善CPE，有些甚至变差了，现代x86-64处理器有16个寄存器，并可以使用16个ymm寄存器保存浮点数，一点循环变量的]]></description><category></category></item><item><title><![CDATA[CSAPP:优化程序性能(三)]]></title><link>https://blog.youkuaiyun.com/a547720714/article/details/73522129</link><guid>https://blog.youkuaiyun.com/a547720714/article/details/73522129</guid><author>a547720714</author><pubDate>Wed, 21 Jun 2017 00:36:52 +0800</pubDate><description><![CDATA[理解现代处理器
之前所讲述的优化策略都不依赖于目标机器的任何特性，这些优化只是简单的降低了过程调用开销、消除妨碍编译器优化的因素，随着师徒进一步提升性能，必须考虑利用处理器的微体系结构的优化，也就是处理器用来执行指令的底层系统设计。
由于现代微处理器的复杂性，处理器的实际操作与通过观察机器级程序所察觉到的程序行为是大相径庭的，在代码级上似乎是一次执行一条指令。每条指令包括从内存或寄存器取值，执]]></description><category></category></item><item><title><![CDATA[CSAPP:优化程序性能(二)]]></title><link>https://blog.youkuaiyun.com/a547720714/article/details/73498306</link><guid>https://blog.youkuaiyun.com/a547720714/article/details/73498306</guid><author>a547720714</author><pubDate>Tue, 20 Jun 2017 16:02:23 +0800</pubDate><description><![CDATA[程序示例
为了说明一个抽象程序是如何被系统地转换成更有效的代码的，我们使用基于如下所示的向量数据结构的运行示例


向量由两个内存块表示，头部和数据数组，头部声明结构如下, data_t代表基本数据类型：
typedef struct {
    long len;
    data_t *data;
}vec_rec, *vec_ptr;
生成向量，访问向量元素，确定向量长度的基本过]]></description><category></category></item><item><title><![CDATA[CSAPP:优化程序性能(一)]]></title><link>https://blog.youkuaiyun.com/a547720714/article/details/73468759</link><guid>https://blog.youkuaiyun.com/a547720714/article/details/73468759</guid><author>a547720714</author><pubDate>Tue, 20 Jun 2017 13:39:56 +0800</pubDate><description><![CDATA[编写高效程序需要做到以下几点：
第一，必须选择一组适当的算法和数据结构
第二，必须编写出编译器能够有效优化以转换高效可执行代码的源代码（理解优化编译器的能力和局限性很重要）
程序员必须在实现和维护程序的简单性和运算速度之间做出权衡，几分钟就能编写一个简单的插入程序，而一个高效的排序算法程序可能需要一天或更长时间来实现和优化，
大多数编译器，例如GCC向用户提供了一些对它们所使用的优化的限制]]></description><category></category></item><item><title><![CDATA[iOS跳转设置界面的多个url]]></title><link>https://blog.youkuaiyun.com/a547720714/article/details/72844133</link><guid>https://blog.youkuaiyun.com/a547720714/article/details/72844133</guid><author>a547720714</author><pubDate>Fri, 02 Jun 2017 14:37:30 +0800</pubDate><description><![CDATA[NSString * urlString = @"App-Prefs:root=WIFI";
 
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:urlString]]) {
    if ([[UIDevice currentDevice].systemVersion doubleValue] >= 1]]></description><category></category></item><item><title><![CDATA[Property follows Cocoa naming convertion for return 'owend' objects]]></title><link>https://blog.youkuaiyun.com/a547720714/article/details/72639892</link><guid>https://blog.youkuaiyun.com/a547720714/article/details/72639892</guid><author>a547720714</author><pubDate>Tue, 23 May 2017 15:03:05 +0800</pubDate><description><![CDATA[Property follows Cocoa naming convertion for return 'owend' objects
这个警告是命名不规范导致的，不能够以关键字作为属性名的开头。]]></description><category></category></item><item><title><![CDATA[Auto property synthesis will not synthesize property '***']]></title><link>https://blog.youkuaiyun.com/a547720714/article/details/72639520</link><guid>https://blog.youkuaiyun.com/a547720714/article/details/72639520</guid><author>a547720714</author><pubDate>Tue, 23 May 2017 14:33:42 +0800</pubDate><description><![CDATA[auto property synthesis will not synthesize property 'description' because it is 'readwrite' but it will be synthesized 'readonly' via another property [-Wobjc-property-synthesis]
属性的名字与系统自带的属性名字冲突了。]]></description><category></category></item><item><title><![CDATA[关于循环动画]]></title><link>https://blog.youkuaiyun.com/a547720714/article/details/70800022</link><guid>https://blog.youkuaiyun.com/a547720714/article/details/70800022</guid><author>a547720714</author><pubDate>Fri, 28 Apr 2017 11:35:27 +0800</pubDate><description><![CDATA[最近测试总反应一个问题就是APP使用过二维码扫描之后，手机总是会出现发烫，耗电量增加的问题，插上手机，打开Xcode开始debug.
前前后后折腾了一会，发现，打开二维码扫描界面的时候一切正常，但是当push到其他界面之后，CPU的使用率飙到100+%，耗电量也变成了very heigh，绝对是一个重大缺陷


于是开始排查问题，一开始想到的是AVCaptureSession的对象没有释放]]></description><category></category></item><item><title><![CDATA[Cocoapods快速解除依赖库]]></title><link>https://blog.youkuaiyun.com/a547720714/article/details/70861601</link><guid>https://blog.youkuaiyun.com/a547720714/article/details/70861601</guid><author>a547720714</author><pubDate>Thu, 27 Apr 2017 17:35:28 +0800</pubDate><description><![CDATA[移除cocopods后重新安装
1、打开终端，运行sudo gem install cocoapods-deintegrate安装快速解除项目cocopods依赖的库
2、安装成功后，cd到你项目的更目录运行pod deintegrate解除项目cocopods依赖
3、运行pod install,重新安装cocopods]]></description><category></category></item><item><title><![CDATA[iOS JSON序列化与反序列化]]></title><link>https://blog.youkuaiyun.com/a547720714/article/details/66968414</link><guid>https://blog.youkuaiyun.com/a547720714/article/details/66968414</guid><author>a547720714</author><pubDate>Mon, 27 Mar 2017 14:35:10 +0800</pubDate><description><![CDATA[序列化与反序列化操作同属于类NSJSONSerialization
序列化：
将Json对象转化为Json字符串
NSData  *jsonData = [NSJSONSerialization dataWithJSONObject:jsonObj options:NSJSONWritingPrettyPrinted error:&error];
NSString *jsonStr = [[]]></description><category></category></item><item><title><![CDATA[APP配置多环境分发（二）]]></title><link>https://blog.youkuaiyun.com/a547720714/article/details/62217506</link><guid>https://blog.youkuaiyun.com/a547720714/article/details/62217506</guid><author>a547720714</author><pubDate>Wed, 15 Mar 2017 11:33:12 +0800</pubDate><description><![CDATA[上一篇文章定义好了不同scheme下不同的bundle ID和display name 就可以通过选择不同scheme来生成两个内容相同的独立APP，但是APP中的内容更改还需要处理一下。
我们如何在APP代码中判断当前是哪个scheme，又如何判断当前scheme下是debug还是release？
这是就需要用到预处理宏定义,在build setting中的Apple LLVM8.0- Pr]]></description><category></category></item></channel></rss>