12 2012 档案

摘要:这篇文章要介绍的,是我作为专业程序员这些年来学到的能真正提高我的代码质量和整体工作效率的10件事情。1. 永远不要复制代码不惜任何代价避免重复的代码。如果一个常用的代码片段出现在了程序中的几个不同地方,重构它,把它放到一个自己的函数里。重复的代码会导致你的同事在读你的代码时产生困惑。而重复的代码如果在一个地方修改,在另外一个地方忘记修改,就会产生到处是bug,它还会使你的代码体积变得臃肿。现代的编程语言提供了很好的方法来解决这些问题,例如,下面这个问题在以前很难解决,而如今使用lambdas却很好实现:现在我们重构含有部分相同代码的函数,用delegate模式重写它们:2. 留意你开始分心的时 阅读全文
posted @ 2012-12-28 12:25 yingkong1987 阅读(177) 评论(0) 推荐(0)
摘要: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.图片压 阅读全文
posted @ 2012-12-20 10:14 yingkong1987 阅读(282) 评论(0) 推荐(0)
摘要:项目开发中,经常遇到一个问题。每次辛苦的发布版本给测试人员测试后,收获一推Bug,面对这些问题,有些问题还是很容易就找到的,那些很难重现的问题就让人无语了。如果不是在模拟器上,又或者我们的设备没有连接到PC上,那么如何调试我们的程序呢?如果应用已经发不到AppStore了,用户在使用过程中出现了问题,我们当然希望能够感知到这个问题,并在更新下个版本时修改和完善我们的应用。 这就引出一个需求:捕获应用使用时出现的异常,提交至服务器或者开发者的邮箱。 废话不多说,直接上代码。 1、用于处理未被try...catch...捕获的异常 void UncaughtExceptionHandler... 阅读全文
posted @ 2012-12-20 00:50 yingkong1987 阅读(262) 评论(0) 推荐(0)
摘要:好的交互设计的评判标准之一是“别让我等”,但互联网产品总是受制于实际的网络问题。移动端产品则更为明显,2G、3G环境下加载不够给力,wifi环境也未必每次都是那么顺利。因此“别让我等”更像是种奢望,我们倒应该思考的是“如何优雅而不令人烦躁的等”。与之最直接关联的就是app加载页面的设计。一个app加载页面,大致分为3类:(一)启动加载页启动加载是我们打开app的第一眼所看到界面。会给用户留下该产品的第一印象。通常启动加载页设计有几种:1、固定的加载页Logo、slogan、产品主色、版本号、出品团队,这是初级启动页面的基本构成元素,设计者的目的就是最直接快速的向用户传达产品形象,这也是让用户最 阅读全文
posted @ 2012-12-19 13:43 yingkong1987 阅读(276) 评论(0) 推荐(0)
摘要:如何只舍不入。比如 float price =0.126,怎么样才能得到0.12?当然,通过字符串截取的办法肯定也能达到相同的效果。但是就是这么一个简单的问题要通过一些判断和截取才能获得结果,总感觉有点笨拙。下面先给出该问题的解决办法:-(NSString *)notRounding:(float)price afterPoint:(int)position{ NSDecimalNumberHandler* roundingBehavior = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundDown s. 阅读全文
posted @ 2012-12-18 12:51 yingkong1987 阅读(8433) 评论(8) 推荐(0)
摘要:我们知道iOS开启后台任务后可以获得最多600秒的执行时间,而一些需要在后台下载或者与服务器保持连接的App是如何突破600秒的限制的呢?像网易公开课就可以在后台持续下载,优酷也可以在后台持续缓存,这是怎么做到的呢?一般来说,要实现iOS长时间后台运行,需要声明VOIP、Audio或GPS。Audiosession实现方法很简单,就是在后台一直播放一个无声的音乐文件,这样就相当于声明了Audio,就可以轻松突破600秒的限制了。通过播放“静默”音让程序在后台执行的做法(即在audiounit回调函数中使用kAudioUnitRenderAction_OutputIsSilence标志位),虽然 阅读全文
posted @ 2012-12-12 21:19 yingkong1987 阅读(552) 评论(0) 推荐(0)
摘要:192个加分的回答:有些初学时的做法,现在我认为是不标准的。1) 有了property,在“私有”的成员变量前面不再使用"_"前缀。如果一个成员变量可以被其他的类访问,那就应该用property。我不喜欢“_”前缀,它会把代码弄得非常丑陋,现在终于可以不用它了。2) 说起来私有,我倾向于把似有方法定义在.m文件里,放在一个私有的category内,如下:#import"MyClass.h"@interfaceMyClass()-(void)someMethod-(void)someOtherMethod@end@implementationMyClass 阅读全文
posted @ 2012-12-09 15:48 yingkong1987 阅读(324) 评论(0) 推荐(0)
摘要:%@ id%d, %D, %i long%u, %U unsigned long%hi short%hu unsigned short%qi ... 阅读全文
posted @ 2012-12-09 15:41 yingkong1987 阅读(357) 评论(0) 推荐(0)
摘要:地图类有基于经纬度查询城市名称的开放API接口吗?如何调用系统自带的google地图,进行路线查询啊?如何根据两点经纬度算出距离呢?获取当前经纬度方法短信类自己写页面发送短信急。。。成功上app的。。急求有人知道iphone开发中调用系统发短信的吗?<iOS4> In App SMS Sample / 程序内发送短信的例子每日分享 - 发送短信/邮件/打电话MFMailComposeViewControllerMFMailComposeViewController发邮件网络类用uiwebview加载一个url后 怎么获取该url 的title??UIWebView加载Loading 阅读全文
posted @ 2012-12-08 11:34 yingkong1987 阅读(233) 评论(0) 推荐(0)
摘要:1 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];2 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];View C... 阅读全文
posted @ 2012-12-08 01:00 yingkong1987 阅读(246) 评论(0) 推荐(0)
摘要:addSubview:添加一个子视图到接收者并让它在最上面显示出来。-(void)addSubview:(UIView*)view讨论这方法同样设置了接收者为下一个视图响应对象。接收者保留视图。如果你使用removeFromSuperview方法用来把视图移除他的显示列表,那么视图将会被释放。如果你想要在视图移除显示列表後保留并使用这个视图(如果,举个例子,你想要交换一些视图的位置。),你不许保留那个视图在他调用removeFromSuperview前。bringSubviewToFront:把指定的子视图移动到顶层-(void)bringSubviewToFront:(UIView*)vie 阅读全文
posted @ 2012-12-08 00:45 yingkong1987 阅读(346) 评论(0) 推荐(0)
摘要:UITextView 和UILable 它本身是没有控制行高的。很多人说用Uiwebview,但我觉得那不好用,要用html布局麻烦,占内存。也有人说drawatpoint,但发现画中文的时候也很占内存,我就投机取巧一下吧UILable 跟下面的用法一样的自己改一下[plain]view plaincopy//DrawAtPoint////Createdbyxiakejieon12-5-13.//Copyright(c)2012年__MyCompanyName__.Allrightsreserved.//#import"ViewController.h"#defineLIN 阅读全文
posted @ 2012-12-05 17:07 yingkong1987 阅读(1339) 评论(0) 推荐(0)
摘要:iPhone 对于应用程序在后台运行有诸多限制(除非你越狱)。因此,当用户切换到其他程序后,原先的程序无法保持运行状态。对于那些需要保持持续连接状态的应用程序(比如社区网络应用),将不能收到实时的信息。为解决这一限制,苹果推出了APNs(苹果推送通知服务)。APNs 允许设备与苹果的推送通知服务器保持常连接状态。当你想发送一个推送通知给某个用户的iPhone上的应用程序时,你可以使用 APNs 发送一个推送消息给目标设备上已安装的某个应用程序。本文中,你将学到创建使用 APNs 的iOS 应用的详细步骤。创建证书请求使用APNs 的第一步是生成一个证书请求,使用该证书请求来申请一个用于开发的 阅读全文
posted @ 2012-12-05 12:47 yingkong1987 阅读(450) 评论(0) 推荐(0)
摘要:Xcode -> 左边的 Groups & Files -> Executables -> 右点击[程序名] -> Get Info选择Arguments (General 右边)下方 Variables to be set in the environment:+ (add)Name | ValueNSZombieEnabled YESMallocStackLoggingNoCompact 1小心英文不能写错NSZombieEnabled YES 可以让已经释放的内存保存一段时间, 当你不小心调用到已经释放的内存,... 阅读全文
posted @ 2012-12-04 00:35 yingkong1987 阅读(213) 评论(0) 推荐(0)