-
iOS开发中集成Reveal
Reveal 是一个界面调试工具。使用Reveal,我们可以在iOS开发时动态地查看和修改应用程序的界面。它类似Chrome的“审查元素”功能,我们不但可以在运行时看到iOS程序的界面层级关系,还可以实时地修改程序界面,不用重新运行程序就可以看到修改之后的效果。在使用时,我们将Reveal连接上模拟器或真机上正在运行的iOS程序,然后就可以查看和调试iOS程序的界面。下载安装Releal官方提供试用版本,免费试用期是30天,功能和正式版没有差别.点此下载。配置Reveal1、配置方式一(1...…
-
使用Wax给你的应用程序打补丁
在iOS开发中经常遇到需要对已经上线的APP进行功能微调,或者是一些紧急的Bug修复。对于需要提交到AppStore的程序来说,每次审核的周期都会较长,在审核过程中很有可能因为各种原因被拒。由于Apple的限制,开发者无法在iOS上动态的加载Objective-C源码,使用脚本语言就可以在一定程度上解决这个问题。比如使用HTML+Javascript的方式,支付宝钱包的彩票等功能就是使用这一方式实现的。另外也可以使用Lua脚本来实现,最初我了解到的Lua是使用在游戏上面的,包括Angry ...…
-
iOS开发中善用日志记录工具
在iOS开发中经常需要靠记录日志来调试应用程序,最常见的做法是使用NSLog来输出相关的信息。大量的使用NSLog存在一定的弊端,将设备连接到电脑,打开XCode中的Device->Console,就可以从console查看到每条日志信息(或者是使用iTools的实时日志,推荐使用)。试想如果将很多核心的算法或者是信息都通过NSLog打印到控制台上,那么很有可能会被其他人获取到相关信息造成很多安全隐患,另外这样的应用也极有可能被Apple拒绝审核通过。使用宏来处理常用的做法是在PCH...…
-
iOS8中的Safari Action Extension
扩展(Extension)是iOS8中引入的一个非常重要的新特性。扩展让app之间的数据交互成为可能。用户可以在app中使用其他应用提供的功能,而无需离开当前的应用。前面介绍过关于Today Widget的使用,本文介绍Action Extension在iOS8中的开发。创建Action Extension1、使用Xcode6创建一个iOS工程,菜单栏File->New->Target出现下面的可选项,选择Action Extension:2、配置Extension的Produ...…
-
iOS中ARC下block的循环引用
在iOS4.2时,Apple推出ARC的内存管理机制。这是一种编译期的内存管理方式,在编译期间,编译器会判断对象的使用情况,并适当的加上retain和release,使得对象的内存被合理的管理。所以,从本质上说ARC和MRC在本质上是一样的,都是通过引用计数的内存管理方式。使用ARC虽然可以简化内存管理,但是ARC并不是万能的,有些情况程序为了能够正常运行,会隐式地持有或者复制对象,如果不加以注意,便会造成内存泄露。在ARC下,当block获取到外部变量时,由于编译器无法预测获取到的变量何...…
-
在iOS开发中使用自定义字体
在iOS的项目开发中经常遇到需要使用一些自定义的字体文件,比如仿宋_GB2312、方正小标宋_GBK等。之前我们为了使用这些自定义的字体,在应用的资源包中放入这些字体文件。因为字体文件通常比较大,有的一个字库就达到10M以上(拿方正小标宋_GBK这个字库来说就有13M之多),这样打包后的ipa文件的体积就可能会变得很大,对于只有个别的模块需要特殊的字体样式的应用来说很不划算,那么在iOS6.0以后苹果就开放了动态加载字体的权限。下面就iOS中使用字体的这两种方式进行介绍。使用静态字体1、将...…
-
iOS中使用模板引擎渲染HTML界面
在iOS实际的开发中,使用UIWebView来加载数据使用的场景特别多。很多时候我们会动态的从服务器获取一段HTML的内容,然后App这边动态的处理这段HTML内容用于展示在UIWebView上。使用到的API接口为:- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;由于HTML内容通常是变化的,所以我们需要动态生成HTML代码。通常我们从服务器端获取到标题、时间、作者和对应的内容,然后我们需要对这些数据处...…
-
iOS中JavaScript和OC交互
在iOS开发中很多时候我们会和UIWebView打交道,目前国内的很多应用都采用了UIWebView的混合编程技术,最常见的是微信公众号的内容页面。前段时间在做微信公众平台相关的开发,发现很多应用场景都是利用HTML5和UIWebView来实现的。机制Objective-C语言调用JavaScript语言,是通过UIWebView的- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;的方法来实现的。...…
-
iOS8中使用TouchID校验用户身份
在iOS8中,开发者们可使用向第三方应用开放了Touch ID权限的API,以便他们在应用中使用指纹认证来完成用户认证部分。相当一部分的APP(如印象笔记、新版QQ)以及在升级后采用了Touch ID来验证用户身份,用以替代过去使用一般密码或者PIN码,如下图所示:(1)新版QQ:(2)印象笔记高级版本:本文主要介绍如何在应用中集成Touch ID来校验用户的身份。集成步骤1、环境要求(1)开发环境:Xcode 6(iOS8 SDK)(2)设备要求:iPhone 5s、iPhone 6 (...…
-
微信企业号开发之消息发送
和服务号不同的是企业号中放开了发送消息的限制,将企业内部的业务需要和微信的消息体系结合起来可以带来更多的便利。在前面也介绍到了在响应用户的请求的时候如果无法及时回应可以直接返回空的消息体,然后调用主动发送消息的接口进行消息的发送来解决这个问题。发送消息的类型及数据格式1、text消息消息数据格式:{ "touser": "UserID1|UserID2|UserID3", "toparty": "PartyID1|PartyID2 ", "totag": "TagID1|Tag...…