摘要:
开发几个常用的开源类库及下载地址:1.jsonjson编码解码2.GTMBase64 base64编码解码3.TouchXML解析4.SFHFKeychainUtils 安全保存用户密码到keychain中5.MBProgressHUD很棒的一个加载等待特效框架6.ASIHTTPRequest等相关协议封装7.EGORefreshTableHeaderView下拉刷新代码8.AsyncImageView异步加载图片并缓存代码9.类似setting的竖立也分栏程序10.MBProgressHUD——进展指示符库11.Flurry——详尽的使用统计12.CorePlot——2D图形绘图仪13.GD 阅读全文
摘要:
基础篇:NSURL介绍http://blog.csdn.net/ysy441088327/article/details/7416759网页执行js代码1 stringByEvaluatingJavaScriptFromString这个方法是让一切成为可能的关键,有了这个方法,才能对网页进行各种操作。我自己没有做过网页开发,所以对js不熟悉,只用了一些最常用的js,如果非常熟悉的话应该能做更多的事。从网页获取URL:1 - (NSURL*)url2 {3 NSString *urlString = [self stringByEvaluatingJavaScriptFromString:@&q 阅读全文
摘要:
这篇文章要介绍的,是我作为专业程序员这些年来学到的能真正提高我的代码质量和整体工作效率的10件事情。1. 永远不要复制代码不惜任何代价避免重复的代码。如果一个常用的代码片段出现在了程序中的几个不同地方,重构它,把它放到一个自己的函数里。重复的代码会导致你的同事在读你的代码时产生困惑。而重复的代码如果在一个地方修改,在另外一个地方忘记修改,就会产生到处是bug,它还会使你的代码体积变得臃肿。现代的编程语言提供了很好的方法来解决这些问题,例如,下面这个问题在以前很难解决,而如今使用lambdas却很好实现:现在我们重构含有部分相同代码的函数,用delegate模式重写它们:2. 留意你开始分心的时 阅读全文
摘要:
1.判断邮箱格式是否正确的代码//利用正则表达式验证-(BOOL)isValidateEmail:(NSString *)email{NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",emailRegex];return [emailTest evaluateWithObject:email];}2.图片压 阅读全文
摘要:
项目开发中,经常遇到一个问题。每次辛苦的发布版本给测试人员测试后,收获一推Bug,面对这些问题,有些问题还是很容易就找到的,那些很难重现的问题就让人无语了。如果不是在模拟器上,又或者我们的设备没有连接到PC上,那么如何调试我们的程序呢?如果应用已经发不到AppStore了,用户在使用过程中出现了问题,我们当然希望能够感知到这个问题,并在更新下个版本时修改和完善我们的应用。 这就引出一个需求:捕获应用使用时出现的异常,提交至服务器或者开发者的邮箱。 废话不多说,直接上代码。 1、用于处理未被try...catch...捕获的异常 void UncaughtExceptionHandler... 阅读全文
摘要:
好的交互设计的评判标准之一是“别让我等”,但互联网产品总是受制于实际的网络问题。移动端产品则更为明显,2G、3G环境下加载不够给力,wifi环境也未必每次都是那么顺利。因此“别让我等”更像是种奢望,我们倒应该思考的是“如何优雅而不令人烦躁的等”。与之最直接关联的就是app加载页面的设计。一个app加载页面,大致分为3类:(一)启动加载页启动加载是我们打开app的第一眼所看到界面。会给用户留下该产品的第一印象。通常启动加载页设计有几种:1、固定的加载页Logo、slogan、产品主色、版本号、出品团队,这是初级启动页面的基本构成元素,设计者的目的就是最直接快速的向用户传达产品形象,这也是让用户最 阅读全文
摘要:
如何只舍不入。比如 float price =0.126,怎么样才能得到0.12?当然,通过字符串截取的办法肯定也能达到相同的效果。但是就是这么一个简单的问题要通过一些判断和截取才能获得结果,总感觉有点笨拙。下面先给出该问题的解决办法:-(NSString *)notRounding:(float)price afterPoint:(int)position{ NSDecimalNumberHandler* roundingBehavior = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundDown s. 阅读全文
摘要:
我们知道iOS开启后台任务后可以获得最多600秒的执行时间,而一些需要在后台下载或者与服务器保持连接的App是如何突破600秒的限制的呢?像网易公开课就可以在后台持续下载,优酷也可以在后台持续缓存,这是怎么做到的呢?一般来说,要实现iOS长时间后台运行,需要声明VOIP、Audio或GPS。Audiosession实现方法很简单,就是在后台一直播放一个无声的音乐文件,这样就相当于声明了Audio,就可以轻松突破600秒的限制了。通过播放“静默”音让程序在后台执行的做法(即在audiounit回调函数中使用kAudioUnitRenderAction_OutputIsSilence标志位),虽然 阅读全文
摘要:
192个加分的回答:有些初学时的做法,现在我认为是不标准的。1) 有了property,在“私有”的成员变量前面不再使用"_"前缀。如果一个成员变量可以被其他的类访问,那就应该用property。我不喜欢“_”前缀,它会把代码弄得非常丑陋,现在终于可以不用它了。2) 说起来私有,我倾向于把似有方法定义在.m文件里,放在一个私有的category内,如下:#import"MyClass.h"@interfaceMyClass()-(void)someMethod-(void)someOtherMethod@end@implementationMyClass 阅读全文
摘要:
%@ id%d, %D, %i long%u, %U unsigned long%hi short%hu unsigned short%qi ... 阅读全文