摘要: 微信作为一个开放平台,各方面都是做得比较好的,推出了SDK之后,微信与使用了SDK的应用便能进行更多交互。但在iOS平台上,应用间交换数据还是相对麻烦的,那么微信为什么能直接在应用检测到其他使用了SDK的应用呢?基于这个疑问,我用了一个下午研究其原理。(当前微信版本4.5.0.54)一、SDK的方法我之前也没使用过微信的SDK,不过下载后,查看发现SDK接口有这么一段1 /*! @brief WXApi的成员函数,在微信终端程序中注册第三方应用。2 *3 * 需要在每次启动第三方应用程序时调用。第一次调用后,会在微信的可用应用列表中出现。4 * @param appid 微信开发者ID5... 阅读全文
posted @ 2013-08-01 17:20 Pinka 阅读(2909) 评论(4) 推荐(0) 编辑
摘要: 公司项目之前的model层代码是我使用JSON工具直接生成Objective-C代码的,当时还是觉得相当省事的,毕竟我经历过无model层的NSDictionary“黑暗”时期。但是随着项目的推进,问题开始慢慢显现出来。于是,在一个多月前,我在Objc.io上看到提及了Mantle,花了一点时间看了... 阅读全文
posted @ 2014-10-27 23:46 Pinka 阅读(4707) 评论(2) 推荐(2) 编辑
摘要: Apple的iOS8发布以后,大家都开始了适配的工作了。但是这个过程总会遇到一些拦路虎,例如推送的API改动。可是商业项目上嵌入了各种各样的第三方静态库,这些静态库质量参差不齐,其中一个静态库甚至在Xcode6上编译后出现问题。于是只能使用Xcode5来编译,但这样就有一个很纠结的问题就是,UIMu... 阅读全文
posted @ 2014-10-21 00:38 Pinka 阅读(572) 评论(0) 推荐(0) 编辑
摘要: iOS发展到现在,iOS5的占有率已经很低了(估计多数还在使用iOS5系统的用户活跃度也不高吧),因此兼容最低版本iOS6.0也不会损失太多用户。同时,下一代大屏iPhone已经发售了,Autolayout绝对是其中一个重要的界面兼容手段。为了能尽快做好适配好新设备的工作,我相信学习Autolayo... 阅读全文
posted @ 2014-09-21 20:16 Pinka 阅读(869) 评论(0) 推荐(0) 编辑
摘要: 最近公司的一个新项目的1.0版本开发完了,但是对于这么一个初期的项目,部分VC的代码行数仍然超过300行。我也开始感觉到有种(Massive)MVC的趋势,而且部分界面控件的创建方法还是略略有点Magic。于是我开始寻求新的架构,来改善当前的状况。我想起了之前听说过的ReactiveCocoa,... 阅读全文
posted @ 2014-07-23 13:23 Pinka 阅读(1688) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2014-04-07 00:13 Pinka 阅读(128) 评论(1) 推荐(2) 编辑
摘要: GCD确实不是什么新东西,我刚开始学iOS开发的时候,也用过皮毛。但终归不是深入学习,之前开发的时候,遇到了一个view需要同时GET三个http的数据。如果一个一个按顺序来,实在是太浪费时间,也太敷衍了事了。之前调用SkyDrive API的时候,我就发现连续几次这样调用API,等待的时间确实有点长,网速慢的话更难以接受。我其实也可以直接使用ASIHttpRequest,但是我认为,如果每次都要从开发中学会新的东西,那么就应该大胆使用自己之前不曾用过的方法。或者通过这些对比,可以找到最好的方法,到时再固定使用也不迟。项目需求具体为同时加载3个列表的数据,本来GCD直接使用3个异步,的确可以完 阅读全文
posted @ 2013-10-03 02:38 Pinka 阅读(564) 评论(0) 推荐(0) 编辑
摘要: 由于使用了现代语法,加之本来ObjC的消息传递机制就是使用“[]”,所以搜索数组时,直接搜索“[]”,显然是不可行的。那么该怎么办呢,其实Xcode的搜索是支持正则表达式的,用正则匹配一下就可以了。[a-zA-Z][\[] 阅读全文
posted @ 2013-09-29 09:52 Pinka 阅读(175) 评论(0) 推荐(0) 编辑
摘要: [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].innerHTML"] 阅读全文
posted @ 2013-09-10 16:24 Pinka 阅读(202) 评论(0) 推荐(0) 编辑
摘要: Launchpad是Lion以后的新功能,还是比较方便的。但是删除应用时,我就遇到一些问题。对于有安装包的应用,一般都可以在安装包里找到卸载程序,那么Launchpad里的应用图标也会同时被删除。但是,对于一些解压后就可以立即使用的应用来说,我有时候会直接将其移动到Application的文件夹。但是遇到一些不能移动的应用时,我会将其拉到Launchpad,但是当要删除的时候还真不知道怎么删除。其实方法如下:sqlite3 ~/Library/Application\ Support/Dock/*.db然后用SQL语句DELETE from apps WHERE title = '应用 阅读全文
posted @ 2013-08-11 21:40 Pinka 阅读(291) 评论(0) 推荐(0) 编辑
摘要: iOS开发中,经常需要对静态库进行操作,以下是几个常用的静态库操作命令。合并模拟器库文件和真机库文件lipo -create -output lib.a lib-armv6.a lib-i386.a其中lib.a是合并后的输出文件,lib-armv6.a和lib-i386.a分别对应真机静态库和模拟... 阅读全文
posted @ 2013-08-06 09:43 Pinka 阅读(443) 评论(0) 推荐(0) 编辑