<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[vimfung的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/vimfung</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; vimfung]]></copyright><item><title><![CDATA[iCloud开发实践]]></title><link>https://blog.youkuaiyun.com/vimfung/article/details/83820256</link><guid>https://blog.youkuaiyun.com/vimfung/article/details/83820256</guid><author>vimfung</author><pubDate>Wed, 07 Nov 2018 11:18:15 +0800</pubDate><description><![CDATA[iCloud开发实践写在前面准备工作Key-value同步文档数据同步本地数据库（CoreData）同步CloudKit使用
写在前面
最近在一直在研究iCloud开发相关的东西，觉得是有必要写篇总结来整理一下近段时间的一些学习成果。之前一直听说iCloud服务不友好也不完善，开发难度也相对较大，其实个人觉得貌似也没说错，iCloud在客户端提供的框架相比于其他的功能框架来说，他是被分散到各个框架...]]></description><category></category></item><item><title><![CDATA[LocalAuthentication开发实践]]></title><link>https://blog.youkuaiyun.com/vimfung/article/details/83820159</link><guid>https://blog.youkuaiyun.com/vimfung/article/details/83820159</guid><author>vimfung</author><pubDate>Wed, 07 Nov 2018 11:14:10 +0800</pubDate><description><![CDATA[LocalAuthentication开发实践基础用法最佳实践（仅iOS 9及以上）Face ID的验证过程实践控制Keychain访问权限复用设备解锁授权更加灵活的访问控制其他属性方法说明
在iPhone 5s加入Touch ID后，指纹识别的功能在App中逐渐受到青睐，特别是对于本地安全较高的应用（如带支付的App）指纹识别是必备的功能，它既能解决在验证过程中输入密码的繁琐过程，同时指纹识的安...]]></description><category></category></item><item><title><![CDATA[仿微信标签备注UI实现]]></title><link>https://blog.youkuaiyun.com/vimfung/article/details/83820048</link><guid>https://blog.youkuaiyun.com/vimfung/article/details/83820048</guid><author>vimfung</author><pubDate>Wed, 07 Nov 2018 11:09:32 +0800</pubDate><description><![CDATA[最近看到微信的标签备注界面的操作体验挺好的，所以自己也想着实现一下，最终实现效果与微信的基本一致，还算是比较满意的_，所以在这里共享给大家，有需要的同学可以到这里下载。效果如下：

当然，这个实现的过程也不是一帆风顺的，之前的想法是使用UICollectionView来实现这样的效果，这样就可以不需要考虑排版和复用问题。都是做到一半的时候，进行不下去了（还是太菜了。。。T_T），主要是 UITex...]]></description><category></category></item><item><title><![CDATA[解决JNI调试报错：No symbol directories found]]></title><link>https://blog.youkuaiyun.com/vimfung/article/details/83820012</link><guid>https://blog.youkuaiyun.com/vimfung/article/details/83820012</guid><author>vimfung</author><pubDate>Wed, 07 Nov 2018 11:08:08 +0800</pubDate><description><![CDATA[项目从AS 2.3迁移到AS 3.0编译后，发现无法进行调试。在控制台中输出下面信息：

Attention! No symbol directories found - please check your native debug configuration

在网上搜了一下资料，有人提出了下面的解决方案：

打开app/build.gradle文件
在dependencies标签中加入下面的设...]]></description><category></category></item><item><title><![CDATA[Lua面向对象编程]]></title><link>https://blog.youkuaiyun.com/vimfung/article/details/83819948</link><guid>https://blog.youkuaiyun.com/vimfung/article/details/83819948</guid><author>vimfung</author><pubDate>Wed, 07 Nov 2018 11:05:59 +0800</pubDate><description><![CDATA[Lua面向对象编程1. 元表方式1.1 关于元表（metatable）1.2 类型声明1.3 添加属性声明1.4 类型继承1.5 方法重载1.6 优化工作1.6.1 类型的字符串描述转换1.6.2 简化构造函数2. LuaScriptCore方式2.1 Object类型2.2 子类化2.3 方法重载
在lua原生语法特性中是不具备面向对象设计的特性。因此，要想在lua上像其他高级语言一样使用面向对...]]></description><category></category></item><item><title><![CDATA[解决JNI在Windows环境下因长路径导致编译失败问题]]></title><link>https://blog.youkuaiyun.com/vimfung/article/details/83819714</link><guid>https://blog.youkuaiyun.com/vimfung/article/details/83819714</guid><author>vimfung</author><pubDate>Wed, 07 Nov 2018 10:56:41 +0800</pubDate><description><![CDATA[之前听一个朋友反馈LuaScriptoCore在Windows下编译会报错，今天特意跑到Windows环境下测试了一番，果然是存在问题。得到了下面的编译报错信息：

Build command failed.
Error while executing process C:\Users\vimfung\AppData\Local\Android\Sdk\ndk-bundle\ndk-build.c...]]></description><category></category></item><item><title><![CDATA[关于iOS9中的App Transport Security相关说明及适配(更新于2016.7.1)]]></title><link>https://blog.youkuaiyun.com/vimfung/article/details/83819625</link><guid>https://blog.youkuaiyun.com/vimfung/article/details/83819625</guid><author>vimfung</author><pubDate>Wed, 07 Nov 2018 10:53:59 +0800</pubDate><description><![CDATA[@[toc](关于iOS9中的App Transport Security相关说明及适配(更新于2016.7.1))




修订时间
内容




2016.7.1
根据苹果官方文档的修改做出文档的调整，并加入对诊断ATS的命令行工具nscurl进行说明。


2015.8.19
解决在iOS9下基于ATS对HTTP的请求的说明及适配进行说明


iOS9中新增App Transport Sec...]]></description><category></category></item><item><title><![CDATA[Unity3D与iOS的交互]]></title><link>https://blog.youkuaiyun.com/vimfung/article/details/83782355</link><guid>https://blog.youkuaiyun.com/vimfung/article/details/83782355</guid><author>vimfung</author><pubDate>Tue, 06 Nov 2018 10:25:38 +0800</pubDate><description><![CDATA[Unity3D与iOS的交互1. 关于Unity3D2. From U3D to iOS2.1 实现原理2.2 实现步骤3. From iOS to U3D3.1 UnitySendMessage3.2 非托管方法4. 类型传递4.1 关于Marshal5. 返回值
1. 关于Unity3D
Unity3D（以下简称U3D）是由Unity Technologies开发的一个让玩家轻松创建诸如三维视...]]></description><category></category></item><item><title><![CDATA[iOS 11新特性与适配]]></title><link>https://blog.youkuaiyun.com/vimfung/article/details/83782170</link><guid>https://blog.youkuaiyun.com/vimfung/article/details/83782170</guid><author>vimfung</author><pubDate>Tue, 06 Nov 2018 10:20:10 +0800</pubDate><description><![CDATA[iOS 11新特性与适配1. UIView变化1.1. 更加方便的RTL边距设置1.2. 安全区域2. UIViewController变化2.1. 废除API2.1.1. `automaticallyAdjustsScrollViewInsets`方法2.1.2. `topLayoutGuide`和`bottomLayoutGuide`属性2.2. 排版2.2.1. `additionalSaf...]]></description><category></category></item><item><title><![CDATA[我眼中的架构设计]]></title><link>https://blog.youkuaiyun.com/vimfung/article/details/83782046</link><guid>https://blog.youkuaiyun.com/vimfung/article/details/83782046</guid><author>vimfung</author><pubDate>Tue, 06 Nov 2018 10:16:02 +0800</pubDate><description><![CDATA[我眼中的架构设计1. 架构与设计2. 没有最好，只有最适合3. 架构设计 != 设计模式4. 设计思维的养成5. 事例实践5.1. 需求分析5.2. 规范与约束5.3. 细化与评估5.4. 技术选型5.5. 框架搭建5.6. 推进与支持6. 架构设计对我的影响
1. 架构与设计
架构是什么？我个人想得很简单，其实就是架子的结构，譬如动物都有属于自己的骨架，房子也有自己的结构框架等，这些都属于现实物...]]></description><category></category></item><item><title><![CDATA[【程序员觉醒】五大基础属性修行]]></title><link>https://blog.youkuaiyun.com/vimfung/article/details/83781938</link><guid>https://blog.youkuaiyun.com/vimfung/article/details/83781938</guid><author>vimfung</author><pubDate>Tue, 06 Nov 2018 10:11:28 +0800</pubDate><description><![CDATA[在我所认知的程序世界里面，除了学习新的技术和知识外，还存在着五大基础属性，它们分别是：看、听、读、写、说。在日常的工作和学习中这些属性占据着重要位置，就好像RPG游戏一样，人物的属性值越高，能力就越强，学习到的技能就越多越高级。所以，在日常生活中不能忽略了这些能力的提升，打怪升级靠的就是它们。
看
这里说的“看”不是指看代码的能力，是指观察事物并对其进行分析和转化成代码语言描述的能力。它是属于一种...]]></description><category></category></item><item><title><![CDATA[【iOS扩展开发攻略】Action Extension]]></title><link>https://blog.youkuaiyun.com/vimfung/article/details/83781849</link><guid>https://blog.youkuaiyun.com/vimfung/article/details/83781849</guid><author>vimfung</author><pubDate>Tue, 06 Nov 2018 10:08:51 +0800</pubDate><description><![CDATA[【iOS扩展开发攻略】Action Extension1. 创建Action Extension扩展Target2. 分析扩展例子代码2.1 与Safari中的网页进行交互2.2 为扩展配置JS文件3. 改写例子：选中网页名词解释4. 带UI的Action Extension5. 改写例子：获取网页中的所有图片6. 相关文章
上一篇《iOS扩展开发攻略：Share Extension》介绍了分享扩...]]></description><category></category></item><item><title><![CDATA[【iOS扩展开发攻略】Share Extension]]></title><link>https://blog.youkuaiyun.com/vimfung/article/details/83781615</link><guid>https://blog.youkuaiyun.com/vimfung/article/details/83781615</guid><author>vimfung</author><pubDate>Tue, 06 Nov 2018 10:03:34 +0800</pubDate><description><![CDATA[【iOS扩展开发攻略】Share Extension1. 什么是扩展？2. 转入正题 － Share Extension2.1 创建Share Extension扩展Target2.2. 配置Share Extension2.3 处理Share Extension中的数据2.3.1 从inputItems中获取数据2.3.2 将分享数据传递给容器程序2.3.3 做好分享插件的提示操作2.4 容器程...]]></description><category></category></item><item><title><![CDATA[【选择恐惧症】需不需要通用设计？]]></title><link>https://blog.youkuaiyun.com/vimfung/article/details/83781480</link><guid>https://blog.youkuaiyun.com/vimfung/article/details/83781480</guid><author>vimfung</author><pubDate>Tue, 06 Nov 2018 09:57:26 +0800</pubDate><description><![CDATA[【选择恐惧症】需不需要通用设计？症前兆症分析症解决
症前兆
经常会遇到这样的问题：一份需求下来，在做设计的时候就会开始纠结了：到底需不需要先抽象公共元素进行通用设计，再来进行功能的细化设计呢？还是直接根据需求为每个功能进行设计？
症分析
出现这种情况通常是因为需求中存在着一些相似的地方，但是结合需求分析又感觉没有什么通用的东西可设计，抽象不出功能点。但是如果直接就进行具体设计又感觉可能无法满足日后...]]></description><category></category></item><item><title><![CDATA[【程序员觉醒】提高效率，增加输出]]></title><link>https://blog.youkuaiyun.com/vimfung/article/details/83781330</link><guid>https://blog.youkuaiyun.com/vimfung/article/details/83781330</guid><author>vimfung</author><pubDate>Tue, 06 Nov 2018 09:50:31 +0800</pubDate><description><![CDATA[【程序员觉醒】提高效率，增加输出1. 提升专注力2. 有效拆解和规划任务3. 管理好时间4. 善于总结，累积经验5. 学习新知识，拓展知识面6. 适当的休息和充足的睡眠
一直都觉得自己的程序员之路犹如打怪升级，不断地完成任务不断地成长，自我也感觉到自己进步了不少。但最近两年感觉精力不断地下降，也许是年龄的增大，也许是生活琐事的增多，感觉投入开发的精力不太够用。
细细地回想之前的打怪升级之路，都是主...]]></description><category></category></item><item><title><![CDATA[解决使用CoreData时报duplicate symbol错误问题]]></title><link>https://blog.youkuaiyun.com/vimfung/article/details/83781259</link><guid>https://blog.youkuaiyun.com/vimfung/article/details/83781259</guid><author>vimfung</author><pubDate>Tue, 06 Nov 2018 09:47:22 +0800</pubDate><description><![CDATA[也不知道是那个XCode版本后对CoreData这块做了调整，我用的是XCode8，按照原来的步骤添加了实体，然后通过菜单Editor-&amp;gt;Create NSManagedObject Subclass…来生成实体类后，编译就报“duplicate symbol”的错误。乍一看，没发现有重复引用的类型，莫名其妙地就出来这个错误。后来还是通过Stackoverflow找到了解决方法（感谢里面的高...]]></description><category></category></item><item><title><![CDATA[使用Xcode开发iOS语法检查的Clang插件]]></title><link>https://blog.youkuaiyun.com/vimfung/article/details/83780963</link><guid>https://blog.youkuaiyun.com/vimfung/article/details/83780963</guid><author>vimfung</author><pubDate>Tue, 06 Nov 2018 09:30:51 +0800</pubDate><description><![CDATA[使用Xcode开发iOS语法检查的Clang插件1. 前言2. 获取Clang源码3. 编译LLVM4. 添加一个简单的插件项目5. 开发插件6. 配置调用插件的Xcode项目7. 抽象语法树AST8. 实现编译时语法检测8.1 检测ObjC中的类声明8.2 检测ObjC中的方法声明8.3 检测ObjC中的属性声明8.4 检测常量／变量声明9. Clang的应用范围讨论10. 推荐链接
1. 前言...]]></description><category></category></item><item><title><![CDATA[Lua与ObjC的交互]]></title><link>https://blog.youkuaiyun.com/vimfung/article/details/53788784</link><guid>https://blog.youkuaiyun.com/vimfung/article/details/53788784</guid><author>vimfung</author><pubDate>Wed, 21 Dec 2016 18:15:19 +0800</pubDate><description><![CDATA[在这里，我想跟大家分享另外一种脚本语言的交互方式，就是使用Lua与原生的ObjC语言进行交互。]]></description><category></category></item><item><title><![CDATA[使用LuaScriptCore来让Lua与iOS进行交互]]></title><link>https://blog.youkuaiyun.com/vimfung/article/details/53608107</link><guid>https://blog.youkuaiyun.com/vimfung/article/details/53608107</guid><author>vimfung</author><pubDate>Tue, 13 Dec 2016 11:55:08 +0800</pubDate><description><![CDATA[Lua的C Api相对来说不容易理解和掌握，需要投入一定的时间去学习和累积这方面的经验。而**[LuaScriptCore](https://github.com/vimfung/LuaScriptCore)**就是为了解决这些问题而诞生，他简化了扩展Lua的难度，让开发者可以通过自己熟悉的语言来扩展Lua，完美解决Lua与原生代码之间的通讯问题]]></description><category></category></item><item><title><![CDATA[【选择恐惧症】接口？虚基类？]]></title><link>https://blog.youkuaiyun.com/vimfung/article/details/53183768</link><guid>https://blog.youkuaiyun.com/vimfung/article/details/53183768</guid><author>vimfung</author><pubDate>Wed, 16 Nov 2016 10:15:42 +0800</pubDate><description><![CDATA[记得有个朋友跟我讨论过这样的一个问题，说到他刚刚学习接口和虚基类的相关知识时觉得很迷茫，不知道什么时候该用接口，什么时候该使用虚基类。后来慢慢地发现接口能做的事情，虚基类也能够实现，甚至有更多的特点。再后来就慢慢地放弃了接口，把所有的设计和实现都采用虚基类来替代。不能说我这个朋友这样的处理有错，但是就我个人对接口和虚基类的理解来说，这样的做法是有不妥的地方。]]></description><category></category></item></channel></rss>