摘要: 实际编程总会涉及到比较两个字符串的内容,一般会用[string1 isEqualsToString:string2]来比较两个字符串是否一致。对于字符串的isEqualsToString方法,需要逐个比较字符串的内容,是比较耗时的操作。偶然间我发现NSString类里有个hash方法,作用是返回NSString实例的散列值。众所周知,内容相同的字符串拥有相同的散列值,内容不同的字符串拥有不同的散列值。所以完全可以根据字符串散列值来判断两个字符串是否一致。于是上面比较字符串的写法可以这么写(一般比较字符串是if语句的判断条件):if ([string1 hash] == [string2 has 阅读全文
posted @ 2013-08-31 10:18 yingkong1987 阅读(360) 评论(0) 推荐(0)
摘要: 说两个与KVC相关的技巧。1.KVC与字典有时候我们需要取出嵌套字典中的某个键的值。例如某个嵌套字典:NSDictionary *dict = @{@"subDict":@{@"subKey":@"aStr"}};需要取出subKey这个键的值。以前总是用valueForKey嵌套的语法来做,其实根本不用那么麻烦,直接利用valueForKeyPath方法就可以实现。代码如下:NSString *str = [dict valueForKeyPath:@"subDict.subKey"];2.KVC实现高阶消息传递 阅读全文
posted @ 2013-08-31 10:08 yingkong1987 阅读(204) 评论(0) 推荐(0)
摘要: 在我工作中经常会遇到有人吐槽Xcode中的interface builder(以下简称IB)不好用的开发者。在我看来,IB是一个非常棒的可视化开发工具,可以非常快捷的设置UI控件的大部分常用属性。下面就说两个IB中的技巧:1.快速显示元素相对位置这个技巧由@余书懿在新浪微博分享。在IB中,选中一个control A,然后按住alt键,鼠标指向B,就显示A和B的相对位置关系,指向父view也行。2.给页面添加水平、垂直辅助线这个技巧是由我一个好朋友,同时也是陌陌的产品经理发现的。IB中是可以添加水平和垂直的辅助线的。并且辅助线是可以拖动、重复添加和删除的。水平辅助线的快捷键是:Command + 阅读全文
posted @ 2013-08-31 08:33 yingkong1987 阅读(493) 评论(0) 推荐(0)
摘要: 最初最近在开发应用时碰到使用ASIHttpRequest后在某些机器上发不出请求的问题,项目开启了ARC,代码是这样写的:@implement MainController- (void) fetchUrl{ ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:currUrl]]; [request setCompletionBlock:^{ NSLog(@"completed"); }]; [request startAsynchronous];}@e... 阅读全文
posted @ 2013-08-31 07:53 yingkong1987 阅读(272) 评论(0) 推荐(0)
摘要: 对于在Xcode上提高工作效率,内功在这不提,对于外力,我将它分为三类: 工具、快捷键和小技巧。主要获得的路径是通过平时积累和看WWDC12上的 Session 402:Working Efficiently with Xcode。一、工具类 (可参考:CocoaChina工具开发库)主要推荐:1. 搜索工具:alfred介绍: 让你搜索您的Mac OS更快,更快,更快的!支持本地和网络搜索下载地址: http://www.alfredapp.com2. 调试工具:ponyDebugger介绍: Network Traffic Debugging、Core Data Browser、View 阅读全文
posted @ 2013-08-31 07:46 yingkong1987 阅读(389) 评论(0) 推荐(1)