`
文章列表
在写iOS程序的时候,想初始化一个空值的时候,经常会迷茫到底是用nil,null还是NSNull, 想定义一个布尔值的变量时,又需要去想想应该用bool,BOOL抑或Boolean,赋值的时候应应该给YES/NO还是true/false。今天正好来理一下。 nil/Nil/NULL/NSNull Matt Thompson总结了这4个变量的不同之处: Symbol Value MeaningNULL (void *)0 literal null value for C pointersnil (id)0 literal null value for Objective-C objec ...
Local Notification的作用 Local Notification(本地通知) :是根据本机状态做出的通知行为,因此,凡是仅需依赖本机状态即可判断需要发出通知的行为都可以或者说应该使用Local Notification来处理。比方说:iBeacon中进入了某个Beacon region,或者说自定义的一些定时提醒等。 构建Local Notification 在iOS中,构建LocalNotification非常简单,只需要掌握好NSLocalNotification这个类就够用了,基本步骤如下: 1. 创建并初始化 UILocalNotification对象 2. 配置该对 ...
本文译自objc.io的文章:http://www.objc.io/issue-5/view-controller-transitions.html 定制动画效果 iOS7中最让我激动的特性之一就是提供了新的API来支持做定制View Contrioller之间的转换特效。iOS7发布之前,我自己写过一些View Controller之间转换动 ...
最近处理了几个简单的技术问题,在这儿写一下,加深一下映象。 1. shell读取解析固定格式文件 在当前项目中,需要处理一个文件的内容,解析每行的数据,以这些数据位参数然后调用一些job完成任务,文件是固定的格式,以“|”分隔每个参数,例子: 假设有如下的一个文件,格式为First_Name|Surname|age, Job的任务是提取出每个人的age,判断是否为成年人 Xianning|Liu|27 Yujiao|Zhang|25 代码: #!\bin\bash ################################# #Usage: sh parse.sh < ...
在WWDC2013中 水果公司把iOS7的中后台多任务单独开出来一个Session讲述(Session 204 What’s New with Multitasking),其对后台多任务的改动如下: 1. 改变了后台任务的运行方式(Background Task) 2. 增加了后台获取(Background Fetch) 3. 增加了推送唤醒(静默推送,Silent Remote Notifications) 4. 增加了后台传输(NSURLSession的BackgroundSession) 开发者如果可以更好的利用这些特性,可以很大的提升自己的应用体验,比方说,使用后台获取特性,在你打 ...
NSURLSession VS NSURLConnection NSURLSession可以看做是NSURLConnection的进化版,其对NSURLConnection的改进点有: * 根据每个Session做配置(http header,Cache,Cookie,protocal,Credential),不再在整个App层面共享配置. * 支持网络操作的取消和断点续传 * 改进了授权机制的处理 * 丰富的Delegate模型 * 分离了真实数据和网络配置数据。 * 后台处理上传和下载,即使你点击了“Home”按钮,后台仍然可以继续下载,并且提供了根据网络状况,电力情况进行处理的配置。 ...
在一个复杂的,有状态的系统中,当一个对象的状态发生改变,如何通知系统,并对状态改变做出相应的行为是必需考虑的一个问题,在iOS中为这类问题提供了4种解决方法: 1. NSNotifiactaion和NSNotificationCenter:通知中心 2. Delegates:代理, 3. Callback:回调, 4. KVO(Key-Value Observing):键值观察 这篇文章就来说说通过KVO通知系统状态发生改变的用法。 KVO是什么? KVO是Object-C中定义的一个通知机制,其定义了一种对象间监控对方状态的改变,并做出反应的机制。对象可以为自己的属性注册观察者,当这 ...
最近在看Sam Davies写的iOS7系列文章(http://www.shinobicontrols.com/blog/posts/2013/09/19/introducing-ios7-day-by-day),非常有意思,以此为契机准备系统的学习一下iOS7的新特性, 今天是第一篇总结:UIDynamics。 UIDynamics的作用 在iOS7之前, 想要实现动画功能只有通过CoreAnimation或者UIView的Animation, 只能自己画, 对于一些真实世界中的动画行为,碰撞啊之类,实现起来特别复杂,而UIDynamic的引入就是为了简化这一类动画行为的。其将现实世界中各种 ...
Gatling一直是久闻其名但是未得机会运用,正好最近有需求做性能测试,于是趁此机会熟悉了一下,可以说,这是目前最合我胃口的性能测试工具。其主要有以下特点: 1. 绿色软件,即下即用。 2. DSL脚本描述测试场景,高端大气 ...
不管现在各种Mock框架的运用有多广,我个人在写单元测试的时候还是特别烦Mock,原因如下: 1. 使用Mock需要Mock所有涉及到得行为,这其实代表了我们是在测试实现,而不是测试执行过程。这样会导致重构的时候经常需要修改很多测试代码。测试应该只关注输入输出,只要输入输出没变,就不应该影响测试。 2. 增加代码复杂度。 3. Mock的时候会不小心屏蔽掉一些实现,增加风险 但是在实际的开发工作中,总是免不了存在外部依赖,比方说依赖某个WebService,或者某个MQ服务,再或者某个Email服务器等等,对于这些外部服务,我更趋向于Stub服务,而不是Mock服务。Stub服务是程序真的和 ...
Hello World 使用AngularJS非常简单,如下: <!doctype html> <html ng-app> <head> <script src="http://code.angularjs.org/angular-1.0.1.min.js"></script> </head> <body> Hello {{'World'}}! </body> </html> 以指令ng-app定义AngularJS的作用域,然后引入angul ...
最近在项目中遇到一个不大,但是还蛮烦人的问题,在Maven的约定中,一个标准Java项目的代码结构如下: project --src --main --java --resources --test --java --resources     当‘gradle idea’构建intelliJ项目 ...
最近读到一篇文章(http://www.merowing.info/2013/03/overlaying-application-version-on-top-of-your-icon/)介绍了一种非常简单的,把版本信息显示到iOS app的icon上的方式, 有了这个技能,在测试多版本的时候,测试人员可以直接从icon上看到当前测试的版本,无需在到HockeyApp或者TestFlight中去看哪些机器使用的哪个版本,可以提升效率。 下面是我如何Get这个技能的: 首先,获取想展示到图标上的信息,在我的app中,我想展示version,branch,commit信息,即当前测试的App是哪 ...
在开放平台的时候,尤其是坐Rest服务的时候,因为用户可以给你传输任何数据,因此,我们需要在服务的入口处添加一层Validator以保证所有无效的数据不泛滥到后续的处理流程中,该Validator会以Fail Fast的形式,尽早告诉客户请求不合法,以及为什么不合法。在Spring MVC框架中可以非常容易实现这样的一层Validator机制。 在Rest服务中,需要验证的输入分为2个部分: URL路径参数 Request Bean Data,通常情况下为一个Bean的Json格式表述。 验证URL参数的验证 对于URL参数的验证,Spring只能帮我们做到限制类型,剩下的还是需要我们自 ...
在一个良好的Rest架构的应用中,所有的异常都应该有对应的Http Status Code来表示具体的异常类型,这样可以客户端可以基于对应的Status Code做出最有利于自己的处理。 在Spring MVC中,异常处理机制有3个选项: 基于Exception的,即只处理某个异常 基于Controller的,即处理某个Controller中抛出的异常。 基于Application的,即处理该Application抛出的所有异常 在我之前的文章(http://ningandjiao.iteye.com/blog/1982635)中,搭建了一个基于Spring4.0的Restful服务 ...
Global site tag (gtag.js) - Google Analytics