<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[useruser19900720的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/useruser19900720</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; useruser19900720]]></copyright><item><title><![CDATA[常用工具]]></title><link>https://blog.youkuaiyun.com/useruser19900720/article/details/80147058</link><guid>https://blog.youkuaiyun.com/useruser19900720/article/details/80147058</guid><author>useruser19900720</author><pubDate>Mon, 30 Apr 2018 08:22:55 +0800</pubDate><description><![CDATA[source tree:链接:https://pan.baidu.com/s/14lU1fQDpY9HwHM66_JEx2A  链接:https://pan.baidu.com/s/1ouQbJQ9V5O6MBvSsHvwu6A ]]></description><category></category></item><item><title><![CDATA[iOS 自己封装的SDK 打包与合并教程！！！]]></title><link>https://blog.youkuaiyun.com/useruser19900720/article/details/79882142</link><guid>https://blog.youkuaiyun.com/useruser19900720/article/details/79882142</guid><author>useruser19900720</author><pubDate>Tue, 10 Apr 2018 15:37:36 +0800</pubDate><description><![CDATA[前言 （1）这个时候就得说下静态库，动态库区别。 静态库：1.模块化，分工合作。2.避免少量改动经常导致大量的重复编译链接。3.也可以重用，注意不是共享使用。 动态库：1.使用动态库，可以将最终可执行文件体积缩小。2.使用动态库，多个应用程序共享内存中得同一份库文件，节省资源。3.使用动态库，可以不重新编译连接可执行程序的前提下，更新动态库文件达到更新应用程序的目的。 备注：苹果禁用动态库，即你使...]]></description><category></category></item><item><title><![CDATA[invalid mode 报错]]></title><link>https://blog.youkuaiyun.com/useruser19900720/article/details/78707112</link><guid>https://blog.youkuaiyun.com/useruser19900720/article/details/78707112</guid><author>useruser19900720</author><pubDate>Mon, 04 Dec 2017 10:29:18 +0800</pubDate><description><![CDATA[invalid mode 报错报错信息如下*** Assertion failure in -[GroupShadowTableView _dequeueReusableCellWithIdentifier:forIndexPath:usingPresentationValues:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim]]></description><category></category></item><item><title><![CDATA[实现UIView背景颜色渐变]]></title><link>https://blog.youkuaiyun.com/useruser19900720/article/details/78222030</link><guid>https://blog.youkuaiyun.com/useruser19900720/article/details/78222030</guid><author>useruser19900720</author><pubDate>Fri, 13 Oct 2017 09:21:47 +0800</pubDate><description><![CDATA[实现UIView背景颜色渐变平时开发中，会有遇到需要渐变背景颜色的需求，虽然说用一张做的的渐变图省事方便，但无疑会占用系统资源，增加开发包大小，最优方案还是用代码来实现，以下为代码实现效果。使用 CAGradientLayer来实现,上代码
@interface MeHeadView()
//先定义
@property(nonatomic,strong)UIView *bgView;
@proper]]></description><category></category></item><item><title><![CDATA[适配iOS11&iPhoneX的一些坑]]></title><link>https://blog.youkuaiyun.com/useruser19900720/article/details/78119479</link><guid>https://blog.youkuaiyun.com/useruser19900720/article/details/78119479</guid><author>useruser19900720</author><pubDate>Thu, 28 Sep 2017 09:15:09 +0800</pubDate><description><![CDATA[前阵子项目开发忙成狗，就一直没做iOS11的适配，直到XcodeGM版发布后，我胸有成竹的在iPhoneX上跑起项目，整个人都凉透了…下面总结一下我遇到的坑，不是很全面，日后补充。导航栏导航栏高度的变化iOS11之前导航栏默认高度为64pt(这里高度指statusBar + NavigationBar)，iOS11之后如果设置了prefersLargeTitles = YES则为96pt，默认情况下]]></description><category></category></item><item><title><![CDATA[iOS开发零碎知识点]]></title><link>https://blog.youkuaiyun.com/useruser19900720/article/details/77941142</link><guid>https://blog.youkuaiyun.com/useruser19900720/article/details/77941142</guid><author>useruser19900720</author><pubDate>Tue, 12 Sep 2017 09:21:49 +0800</pubDate><description><![CDATA[转自：http://blog.youkuaiyun.com/wenmingzheng/article/details/52180380

一、调用代码使APP进入后台，达到点击Home键的效果。（私有API）
    [[UIApplication sharedApplication] performSelector:@selector(suspend)];


suspend的英文意思有：暂停; ]]></description><category></category></item><item><title><![CDATA[Block-栈，堆，全局块]]></title><link>https://blog.youkuaiyun.com/useruser19900720/article/details/77574462</link><guid>https://blog.youkuaiyun.com/useruser19900720/article/details/77574462</guid><author>useruser19900720</author><pubDate>Fri, 25 Aug 2017 15:16:59 +0800</pubDate><description><![CDATA[栈块、堆块、全局块 (Block详解)对于Block之前只是在用，对于栈，堆这块没有细入研究，今天抽空把”Effectiv Objective-c 2.0”这本书看了一下，下面是一些概念及实例。分几类
栈Block
堆Block
全局Block
栈Block直接声明使用的block是分配在栈内,为栈block,只会在定义它的范围内有效。
  注意：下面这种写法就有问题。
-(void)doSomet]]></description><category></category></item><item><title><![CDATA[iOS 远程消息推送 APNS推送原理和一步一步开发详解篇]]></title><link>https://blog.youkuaiyun.com/useruser19900720/article/details/76619021</link><guid>https://blog.youkuaiyun.com/useruser19900720/article/details/76619021</guid><author>useruser19900720</author><pubDate>Thu, 03 Aug 2017 14:31:27 +0800</pubDate><description><![CDATA[前言：现在第三方推送也很多 ，比如极光，融云，信鸽，其原理也是相同利用APNS推送机制 ，前段公司让做自己的推送，1.避免device token被第三方泄露，保护手机设备信息，2.第三方部分开始收费，一些免费的以后谁又知道呢 ，不如自己创建，除了后台麻烦点，需要数据库来存储token相关字段（后台配置部分在最后更新添加），前端实现起来并不复杂 。 对于iOS8.0以后，原生推送实时性很好，这篇文章]]></description><category></category></item><item><title><![CDATA[修改UIButton响应热区]]></title><link>https://blog.youkuaiyun.com/useruser19900720/article/details/76608412</link><guid>https://blog.youkuaiyun.com/useruser19900720/article/details/76608412</guid><author>useruser19900720</author><pubDate>Thu, 03 Aug 2017 10:11:21 +0800</pubDate><description><![CDATA[如何修改UIButton响应区域修改UIButton响应区域，以前处理这个需求时，是建一个view，添加手势，覆盖在需响应的区域，这种方法比较low,  可以通过新建一个分类，利用runtime来实现。
新建一个UIView,覆盖在需响应的热区
新建分类,利用runtime来实现
下面介绍新建分类的方法来实现热区响应扩大.h代码块语法遵循标准markdown代码，例如：@interface UIBu]]></description><category></category></item><item><title><![CDATA[出现（ linker command failed with exit code 1）错误总结]]></title><link>https://blog.youkuaiyun.com/useruser19900720/article/details/73794073</link><guid>https://blog.youkuaiyun.com/useruser19900720/article/details/73794073</guid><author>useruser19900720</author><pubDate>Tue, 27 Jun 2017 14:14:51 +0800</pubDate><description><![CDATA[这种问题，通常出现在添加第三方库文件或者多人开发时。

这种问题一般是找不到文件而导致的链接错误。 我们可以从如下几个方面着手排查。




1.以如下错误为例，如果是多人开发，你同步完成后发现出现如下的错误。





[html] view
 plaincopy








Undefined symbols for architecture ]]></description><category></category></item><item><title><![CDATA[<转>for in、经典for循环和EnumerateObjectsUsingBlock]]></title><link>https://blog.youkuaiyun.com/useruser19900720/article/details/73610128</link><guid>https://blog.youkuaiyun.com/useruser19900720/article/details/73610128</guid><author>useruser19900720</author><pubDate>Thu, 22 Jun 2017 18:32:32 +0800</pubDate><description><![CDATA[一直以为for循环和 for in 是一样的,例如:CFAbsoluteTime start = CFAbsoluteTimeGetCurrent();
NSMutableArray * arr = @[@1,@2,@3,@4,@5].mutableCopy;
for (NSNumber *obj in arr) {
    NSLog(@"%@",obj);
}
CFAbsoluteTime en]]></description><category></category></item><item><title><![CDATA[自定义UIView中怎么注册销毁NSNotification通知]]></title><link>https://blog.youkuaiyun.com/useruser19900720/article/details/72870878</link><guid>https://blog.youkuaiyun.com/useruser19900720/article/details/72870878</guid><author>useruser19900720</author><pubDate>Mon, 05 Jun 2017 20:16:41 +0800</pubDate><description><![CDATA[自定义UIView中怎么注册销毁NSNotification通知因项目需求，需在自定义UIView内添加通知，因未及时移除该通知，导致请求方法执行多次。如下是从stackOverFlow查到的答案.记录一下。代码如下'//移除通知方法'
- (void)willMoveToWindow:(UIWindow *)newWindow {
if (newWindow == nil) {
    '// W]]></description><category></category></item><item><title><![CDATA[关于rightBarButtonItems多个控件之间的间距调整。]]></title><link>https://blog.youkuaiyun.com/useruser19900720/article/details/70048667</link><guid>https://blog.youkuaiyun.com/useruser19900720/article/details/70048667</guid><author>useruser19900720</author><pubDate>Tue, 11 Apr 2017 10:55:27 +0800</pubDate><description><![CDATA[今天项目有个需求，要求右侧导行栏添加三个控钮，想到用rightBarButtonItems包三个rightBarButtonItem，
结果控件之间的间距没法调整，试过很多种方法都不行，结合网上一些思路及自己拓展，最终解决方案是在两
个控件中间加个占位的Item.代码如下。




    

    self.switcherBtn = [self
addButtonWith]]></description><category></category></item><item><title><![CDATA[iOS【终极方案】精准获取webView内容高度，自适应高度]]></title><link>https://blog.youkuaiyun.com/useruser19900720/article/details/65641108</link><guid>https://blog.youkuaiyun.com/useruser19900720/article/details/65641108</guid><author>useruser19900720</author><pubDate>Fri, 24 Mar 2017 19:47:40 +0800</pubDate><description><![CDATA[关于WebView内容高度的获取，相信很多人都踩过坑，无法获取到准确高度，导致页面布局出现差错，搜到的资料很多但都无法解决问题，以下是个人经验总结：
项目需求实现H5文章&原生评论效果，文章是加载H5链接，评论信息是后台接口提供，以列表形式展示。 实现思路：
1. webView加载H5链接，设置它为tableView的 headerView，下方评论信息用Cell加载展示。

2. 在web]]></description><category></category></item><item><title><![CDATA[ios开发使用CGContextRef画图]]></title><link>https://blog.youkuaiyun.com/useruser19900720/article/details/64129761</link><guid>https://blog.youkuaiyun.com/useruser19900720/article/details/64129761</guid><author>useruser19900720</author><pubDate>Mon, 20 Mar 2017 18:04:17 +0800</pubDate><description><![CDATA[1>画三角形，并填充底色


    CGContextRef context =
UIGraphicsGetCurrentContext();

    

    CGContextMoveToPoint(context,
SCREEN_WIDTH-10-65,
10);

    

    CGContextAddLineToPoint(context,
SC]]></description><category></category></item><item><title><![CDATA[使用第三方工具Cornerstone搭建本地SVN服务器]]></title><link>https://blog.youkuaiyun.com/useruser19900720/article/details/60867222</link><guid>https://blog.youkuaiyun.com/useruser19900720/article/details/60867222</guid><author>useruser19900720</author><pubDate>Wed, 08 Mar 2017 09:52:46 +0800</pubDate><description><![CDATA[一、添加版本资源库

　　点击Cornerstone左下角REPOSITORIES栏右边的加号按钮，在弹出的视图中选择File Repository，然后选择Create a New Repository，接着开始填写资料

　　Where栏目是指本地服务器的存放地址，我一般是选择放在Mac的文稿里边的，那里好分辨。

　　Nickname是指你本地服务器的名称，随便取，你认得就好，比]]></description><category></category></item><item><title><![CDATA[React Native开发之IDE（Atom+Nuclide）安装，运行，调试]]></title><link>https://blog.youkuaiyun.com/useruser19900720/article/details/54598834</link><guid>https://blog.youkuaiyun.com/useruser19900720/article/details/54598834</guid><author>useruser19900720</author><pubDate>Wed, 18 Jan 2017 10:02:52 +0800</pubDate><description><![CDATA[转自:http://blog.youkuaiyun.com/hello_hwc/article/details/51612139
前言


工欲善其事，必先利其器


好像在哪听到一句话，”满级程序员不需要IDE，不需要自动补全，不需要静态语法检查”。对于这种言论，我只想说bullshit。

IDE对于开发还是很重要的，而React Native开发官方推荐使用Atom＋Nuclide插件]]></description><category></category></item><item><title><![CDATA[为React Native开发写的JS和React入门知识]]></title><link>https://blog.youkuaiyun.com/useruser19900720/article/details/54598517</link><guid>https://blog.youkuaiyun.com/useruser19900720/article/details/54598517</guid><author>useruser19900720</author><pubDate>Wed, 18 Jan 2017 09:25:41 +0800</pubDate><description><![CDATA[转自:http://blog.youkuaiyun.com/hello_hwc/article/details/51199384

准备工作

先安装React Native，然后初始化一个示例工程
react-native init JSReactBasics11

会生成如下一个目录 


然后，XCode打开JSReactBasics.xcodeproj，运行模拟器会看到如下截图
]]></description><category></category></item><item><title><![CDATA[RxSwift使用教程]]></title><link>https://blog.youkuaiyun.com/useruser19900720/article/details/54583939</link><guid>https://blog.youkuaiyun.com/useruser19900720/article/details/54583939</guid><author>useruser19900720</author><pubDate>Tue, 17 Jan 2017 16:05:11 +0800</pubDate><description><![CDATA[转自: http://blog.youkuaiyun.com/Hello_Hwc/article/details/51859330




前言


RxSwift是Swift函数响应式编程的一个开源库，由Github的ReactiveX组织开发，维护。

RxSwift的目的是让让数据/事件流和异步任务能够更方便的序列化处理，能够使用Swift进行响应式编程

目前，RxSwift在]]></description><category></category></item><item><title><![CDATA[This iPhone 6 is running iOS 10.2 (14C92), which may not be supported by this version of Xcode.]]></title><link>https://blog.youkuaiyun.com/useruser19900720/article/details/53929080</link><guid>https://blog.youkuaiyun.com/useruser19900720/article/details/53929080</guid><author>useruser19900720</author><pubDate>Thu, 29 Dec 2016 15:56:13 +0800</pubDate><description><![CDATA[手机升级了10.2  , 在真机调试时报错，提示：“This iPhone 6 is running iOS 10.1 (14C92), which may not be supported by this version of Xcode.”


这是由于升级了手机版本与Xcode片本包不匹配，


    解决方案：1>升级Xcode版本
                    ]]></description><category></category></item></channel></rss>