<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wangcuixin的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wangcuixin</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wangcuixin]]></copyright><item><title><![CDATA[完美限制UITextField的输入长度]]></title><link>https://blog.youkuaiyun.com/wangcuixin/article/details/79402558</link><guid>https://blog.youkuaiyun.com/wangcuixin/article/details/79402558</guid><author>wangcuixin</author><pubDate>Wed, 28 Feb 2018 16:39:33 +0800</pubDate><description><![CDATA[要限制一个UITextField的输入字数，很多人首先想到的是通过UITextFieldDelegate下面这个代理方法实现：- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;//return NO ...]]></description><category></category></item><item><title><![CDATA[MAC系统上搭建NodeJS开发环境]]></title><link>https://blog.youkuaiyun.com/wangcuixin/article/details/79268371</link><guid>https://blog.youkuaiyun.com/wangcuixin/article/details/79268371</guid><author>wangcuixin</author><pubDate>Tue, 06 Feb 2018 10:57:48 +0800</pubDate><description><![CDATA[1）安装NodeJS

在官网(https://nodejs.org/en/)下载pkg包,我下载的版本为6.9.5,大小为15.5M。下载的安装包双击下一步安装即可。










可以在终端中查看是否成功安装nodejs




这样我们就安装好了node和npm工具，可以使用它们进行工作了。

2）安装Sublime

3）配置sublime]]></description><category></category></item><item><title><![CDATA[UILable 富文本，加载html]]></title><link>https://blog.youkuaiyun.com/wangcuixin/article/details/79202947</link><guid>https://blog.youkuaiyun.com/wangcuixin/article/details/79202947</guid><author>wangcuixin</author><pubDate>Tue, 30 Jan 2018 10:33:53 +0800</pubDate><description><![CDATA[1.加载HTML标签文本

因为解析的数据里面有html标签，就使用下面的代码把字符串转换成data，初始化时再用HTML类型，转换为富文本。
 NSMutableAttributedString * attrStr = [[NSMutableAttributedString alloc] initWithData:[str dataUsingEncoding:NSUnicodeString]]></description><category></category></item><item><title><![CDATA[Charles_Https_Mac版]]></title><link>https://blog.youkuaiyun.com/wangcuixin/article/details/79202630</link><guid>https://blog.youkuaiyun.com/wangcuixin/article/details/79202630</guid><author>wangcuixin</author><pubDate>Tue, 30 Jan 2018 10:15:34 +0800</pubDate><description><![CDATA[官方下载链接：https://www.charlesproxy.com/download/

1、打开Charles
SSLProxying->InstallCharlesRootCertificate" style="margin:10px 0px 0px; padding:0px; color:rgb(51,51,51); font-size:16px; line-height:1.5;]]></description><category></category></item><item><title><![CDATA[Runtime机制和使用]]></title><link>https://blog.youkuaiyun.com/wangcuixin/article/details/78905463</link><guid>https://blog.youkuaiyun.com/wangcuixin/article/details/78905463</guid><author>wangcuixin</author><pubDate>Tue, 26 Dec 2017 19:05:59 +0800</pubDate><description><![CDATA[http://www.cocoachina.com/ios/20160128/15154.html




相比“凌波微步”的Swift，Object-C被誉为“如来神掌”。传说Runtime就是支持这“如来神掌”说法的最好体现。听起来总是这么的神秘高级，于是总能在各个论坛看到碎片资料，时间一长总记不住哪里是哪里，每次都要打开好几个网页。这种记不住象现显然是知识体系还不完整重要体现。还是]]></description><category></category></item><item><title><![CDATA[xib里 scrollView的 适配]]></title><link>https://blog.youkuaiyun.com/wangcuixin/article/details/78403963</link><guid>https://blog.youkuaiyun.com/wangcuixin/article/details/78403963</guid><author>wangcuixin</author><pubDate>Tue, 31 Oct 2017 15:26:34 +0800</pubDate><description><![CDATA[http://blog.youkuaiyun.com/delegate_m/article/details/52022691






1、在使用xib定制界面时，我们经常会用到AutoLayout自动布局，或者不用AutoLayout，自己在xib属性的地方进行约束

2、xib中，ScrollView的自动约束并不像我们平常约束其他view一样，由于ScrollView的滚动范围是由有]]></description><category></category></item><item><title><![CDATA[ios开发常见问题]]></title><link>https://blog.youkuaiyun.com/wangcuixin/article/details/77503718</link><guid>https://blog.youkuaiyun.com/wangcuixin/article/details/77503718</guid><author>wangcuixin</author><pubDate>Wed, 23 Aug 2017 11:18:12 +0800</pubDate><description><![CDATA[http://www.cocoachina.com/ios/20170626/19616.html]]></description><category></category></item><item><title><![CDATA[iOS开发 iOS 10及其以上，UITextField输入时文字往下偏移问题]]></title><link>https://blog.youkuaiyun.com/wangcuixin/article/details/77502481</link><guid>https://blog.youkuaiyun.com/wangcuixin/article/details/77502481</guid><author>wangcuixin</author><pubDate>Wed, 23 Aug 2017 10:34:23 +0800</pubDate><description><![CDATA[一般很少出现，但是iOS 10后，系统字体变大了，导致这个问题出现次数多了
方案一：

xib时选择带边框的,线拉出属性,再在viewDidLoad里设置成无边框样式

方案二：（对于切换后台后切换回来导致的光标下移问题是有效的）





self.automaticallyAdjustsScrollViewInsets = NO;  





方案三：（我项]]></description><category></category></item><item><title><![CDATA[适配iOS11 - UITableview UICollectionView MJRefresh下拉刷新错乱]]></title><link>https://blog.youkuaiyun.com/wangcuixin/article/details/76888828</link><guid>https://blog.youkuaiyun.com/wangcuixin/article/details/76888828</guid><author>wangcuixin</author><pubDate>Tue, 08 Aug 2017 11:07:38 +0800</pubDate><description><![CDATA[升级Xcode 9 + iOS 11后，发现原本没问题的collectionView和tableView像是中了风一样，头部刷新UI出现了错乱。

查阅发现 iOS11弃用了automaticallyAdjustsScrollViewInsets属性，新增contentInsetAdjustmentBehavior来替代它

关于 contentInsetAdjustmentBehavio]]></description><category></category></item><item><title><![CDATA[关闭键盘/收起键盘的方法总结（包括触摸UITableView收起键盘）]]></title><link>https://blog.youkuaiyun.com/wangcuixin/article/details/75513089</link><guid>https://blog.youkuaiyun.com/wangcuixin/article/details/75513089</guid><author>wangcuixin</author><pubDate>Thu, 20 Jul 2017 13:17:04 +0800</pubDate><description><![CDATA[1、用的比较多的方法：点击背景View收起键盘或者直接使用也可以（你的View必须是继承于UIControl）

 

[self.view endEditing:YES];

2、万能方法：在任何地方都可以使用这种方法来关闭/收起键盘

[[[UIApplication sharedApplication] keyWindow] endEditing:YES];

3、点击R]]></description><category></category></item><item><title><![CDATA[Cocoapods 使用常见错误]]></title><link>https://blog.youkuaiyun.com/wangcuixin/article/details/73795579</link><guid>https://blog.youkuaiyun.com/wangcuixin/article/details/73795579</guid><author>wangcuixin</author><pubDate>Tue, 27 Jun 2017 14:32:17 +0800</pubDate><description><![CDATA[1、安装或更新Cocoapods时提示没权限
$ gem install cocoapods
Fetching: cocoapods-core-0.38.2.gem (100%)
ERROR: while executing gem ... (Gem::FilePermissionError)
       You don't have write permissions for the /Li]]></description><category></category></item><item><title><![CDATA[Cocoa pods的安装和使用详解]]></title><link>https://blog.youkuaiyun.com/wangcuixin/article/details/73795150</link><guid>https://blog.youkuaiyun.com/wangcuixin/article/details/73795150</guid><author>wangcuixin</author><pubDate>Tue, 27 Jun 2017 14:30:14 +0800</pubDate><description><![CDATA[原理

CocoaPods的原理,它是将所有的依赖库都放到另一个名为Pods项目中,然后 让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中

1、Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a 文件即可。2、对于资源文件,CocoaPods提供了一个名为Pods-resources.sh的bash脚本, 该脚本在每次项目编译的时]]></description><category></category></item><item><title><![CDATA[xcode调试技巧]]></title><link>https://blog.youkuaiyun.com/wangcuixin/article/details/72362413</link><guid>https://blog.youkuaiyun.com/wangcuixin/article/details/72362413</guid><author>wangcuixin</author><pubDate>Wed, 17 May 2017 11:14:40 +0800</pubDate><description><![CDATA[转自：http://www.cnblogs.com/LeeGof/p/5728672.html

Xcode 5的发布，LLDB调试器已经取代了GDB，成为了Xcode工程中默认的调试器。它与LLVM编译器一起，带给我们更丰富的流程控制和数据检测的调试功能。LLDB为Xcode提供了底层调试环境，其中包括内嵌在Xcode IDE中的位于调试区域的控制面板，在这里我们可以直接调用LLDB命令，示]]></description><category></category></item><item><title><![CDATA[动态库与静态库]]></title><link>https://blog.youkuaiyun.com/wangcuixin/article/details/72152269</link><guid>https://blog.youkuaiyun.com/wangcuixin/article/details/72152269</guid><author>wangcuixin</author><pubDate>Mon, 15 May 2017 15:10:47 +0800</pubDate><description><![CDATA[http://www.cocoachina.com/ios/20170427/19136.html




起因


理论功底



动态库和静态库



介绍


静态库和动态库的区别


举个例子， iOS 项目中使用 Embeded Framework


静态库和动态库如何构建和加载


静态库和动态库依赖关系



Xcod]]></description><category></category></item><item><title><![CDATA[MVVM架构简单使用]]></title><link>https://blog.youkuaiyun.com/wangcuixin/article/details/53905609</link><guid>https://blog.youkuaiyun.com/wangcuixin/article/details/53905609</guid><author>wangcuixin</author><pubDate>Wed, 28 Dec 2016 09:24:51 +0800</pubDate><description><![CDATA[http://blog.cocoachina.com/article/34636#st-1


项目github地址 https://github.com/zhangjiahuan8888/mvvmDemo/tree/master

开篇

MVC Model-View-Controller是一个用来组织代码的权威范式。Apple甚至是这么说的。在MVC下，所有的对象被归类为一个mo]]></description><category></category></item><item><title><![CDATA[联系Apple客服小结]]></title><link>https://blog.youkuaiyun.com/wangcuixin/article/details/53466329</link><guid>https://blog.youkuaiyun.com/wangcuixin/article/details/53466329</guid><author>wangcuixin</author><pubDate>Mon, 05 Dec 2016 16:07:20 +0800</pubDate><description><![CDATA[摘要

面向普通用户的热线: 400-666-8800面向购买开发计划的开发者的热线: 4006-701-855Code-Level Support: 在developer.apple.com登录Account后, 左侧有相应选项. 
普通支持

面向所有普通的使用产品的用户;从www.apple.com进入, 选择顶部的"技术支持"; 再选择下面的"联系Apple支持"的"获取支持",]]></description><category></category></item><item><title><![CDATA[iOS10 权限崩溃问题]]></title><link>https://blog.youkuaiyun.com/wangcuixin/article/details/53127654</link><guid>https://blog.youkuaiyun.com/wangcuixin/article/details/53127654</guid><author>wangcuixin</author><pubDate>Fri, 11 Nov 2016 12:06:02 +0800</pubDate><description><![CDATA[手机升级了 iOS10，然后用正在开发的项目 装了个ipa包，发现点击有关 权限访问 直接Crash了，并在控制台输出了一些信息：

This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must c]]></description><category></category></item><item><title><![CDATA[xcode8 升级后注释快捷键不能使用的解决方法]]></title><link>https://blog.youkuaiyun.com/wangcuixin/article/details/53127630</link><guid>https://blog.youkuaiyun.com/wangcuixin/article/details/53127630</guid><author>wangcuixin</author><pubDate>Fri, 11 Nov 2016 12:01:04 +0800</pubDate><description><![CDATA[这个是因为苹果解决xcode ghost。把插件屏蔽了。解决方法

命令运行：  sudo /usr/libexec/xpccachectl 

然后必须重启电脑后生效]]></description><category></category></item><item><title><![CDATA[iOS开发常用代码块（二）]]></title><link>https://blog.youkuaiyun.com/wangcuixin/article/details/52797733</link><guid>https://blog.youkuaiyun.com/wangcuixin/article/details/52797733</guid><author>wangcuixin</author><pubDate>Wed, 12 Oct 2016 15:38:28 +0800</pubDate><description><![CDATA[GCD定时器


dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue);
dispatch_s]]></description><category></category></item><item><title><![CDATA[iOS开发常用代码块(-)]]></title><link>https://blog.youkuaiyun.com/wangcuixin/article/details/52797710</link><guid>https://blog.youkuaiyun.com/wangcuixin/article/details/52797710</guid><author>wangcuixin</author><pubDate>Wed, 12 Oct 2016 15:36:41 +0800</pubDate><description><![CDATA[遍历可变数组的同时删除数组元素


NSMutableArray *copyArray = [NSMutableArray arrayWithArray:array];   
NSString *str1 = @“zhangsan”;  
for (AddressPerson *perName in copyArray) {  
    if ([[perName name] isEqual]]></description><category></category></item></channel></rss>