摘要: 微信作为一个开放平台,各方面都是做得比较好的,推出了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) 编辑
摘要: 1 [[[UIApplication sharedApplication] keyWindow] endEditing:YES];其实就这么一句话,之前通过遍历子View还费时费力了。 阅读全文
posted @ 2013-07-22 10:17 Pinka 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 最近在某电商买了个迷你无线路由器,号称300M,价钱也不贵。但是,在插上网线后,发现使用WiFi时,电脑的下载速度奇慢,而且是内网的传输速度。显然是相当不合理的,学信息论基础的时候,我们知道信道肯定有干扰,所以需要有容错的编码。于是通常,编码都是有冗余信息,但是300Mbps的带宽无论怎么冗余都不至于下跌到每秒100kB的速度吧?平时使用更迷你的3g路由器,都可以轻松达到3MB/s。难道是路由器虚标???我突然想起了一件事情,新闻曾经说一个少年发明了一种算法可以减少WiFi间的干扰,从而增加带宽。其实,不同WiFi之间是会相互干扰的,所以合理地设置WiFI的热点位置,可以避免这种相互干扰的情况 阅读全文
posted @ 2013-07-19 17:59 Pinka 阅读(211) 评论(1) 推荐(0) 编辑
摘要: 有一天下午,我调试了很久,都没有办法把一张图显示出来,在模拟器上是正常显示的,但真机上却不能。缓存清理过了,程序也删除重装过了,但都不起作用。最后发现了,原来是大小写搞错了,但为什么模拟器不出现问题,真机就会呢?其实道理很简单,就是文件系统格式的不同而导致了模拟器和真机之间的差异。系统安装的分区默认使用的格式是普通的日志式,是不区分大小写的格式,而还有一种文件系统格式是区分大小写的。至于为什么默认的文件系统格式不使用区分大小写的原因我就不得而知了。iOS系统使用的文件系统格式倒是区分大小写的,不信的可以自己试一下。虽然这只是一个小细节,但是我觉得知道其中的缘由还是有好处的。 阅读全文
posted @ 2013-04-30 17:41 Pinka 阅读(756) 评论(0) 推荐(0) 编辑
摘要: 最近的一个项目比较简单,主要以观看视频为主,夹杂一些附加功能,如收藏,分享微博,搜索等。实现起来难度也不高,切换的view来来去去也就那么几个。当然,为了提升用户体验,图片的缓存肯定是必不可少的。之前,我的项目缓存是自己用一些很愚蠢的方法写的,在这里也用不上。自己写的缓存是利用SQLite记录时间,再通过获取Json来判断,缓存的文件是否用得上。而且,最奇葩的是,这个不是Url缓存,因为所使用的token是需要refresh的。因此,ASIHttpRequest那些帮不了我。但这一次情况不一样了,我需要缓存的图片都是有固定Url,也用不着自己实现缓存方法,相当便捷(ASIHttpRequest 阅读全文
posted @ 2013-02-12 17:50 Pinka 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 最近比较忙,所以现在才写第二篇学习笔记,废话不说,直入主题。上次讲到的都是非常基础的东西,这次主要是在数据库能正常操作的基础上,提高效率。(本人也是SQL方面的新手,SQLite更是如此,所以可能会有所错漏)先总结一下数据库的一般操作流程:打开数据库文件->编写好SQL语句->预编译语句->执行语句->查询结果(非查询语句跳过这一步)->释放语句->关闭数据库需要注意的是,不再使用的数据库指针和语句必须释放掉。虽然我测试后发现,即使是已经打开了的数据库也是可以进行其他文件操作的,包括删除,复制等。1.sqlite3_prepare_v2sqlite3_pre 阅读全文
posted @ 2012-12-07 11:32 Pinka 阅读(1234) 评论(0) 推荐(0) 编辑
摘要: 前言:App的开发都七七八八了(当然还有大量的bug),基本功能是差不多都有了,有些地方可能比官方的还要好上一些(写了差不多3个月,比官方烂太多还真说不过去)。但是,作为移动应用,流畅和几乎无迟滞的体验会更受到用户欢迎。我的App问题就是,每一次都要向服务器请求json数据。虽然每次的数据量都不大,但等那么一两秒,长期下来,用户肯定会感到厌烦。而且,请求数据受到网络环境影响,等待的时间可能会更长,如果请求失败,估计摔手机的心都有了(我一般会直接删除应用)。同时,这么吃流量的怪兽,估计没多少个人会在非WiFi环境下使用,用户活跃数又随之减少了。以上就是我决心做缓存的原因。一、前期准备先添加开发包 阅读全文
posted @ 2012-11-01 11:48 Pinka 阅读(818) 评论(0) 推荐(1) 编辑
摘要: 这个星期我完成了一个具有基本录音和回放的功能,一开始也不知道从何入手,也查找了很多相关的资料。与此同时,我也学会了很多关于音频方面的东西,这也对后面的录音配置有一定的帮助。其中参照了《iPhone开发之音频: 文件和数据类型(一)》,启发比较大。一、音频格式iPhone上支持的音频编码格式还是比较多的,而且有很多我是以前听都没有听过的。我就先简单列出来(以下是摘录自《iPhone开发之音频: 文件和数据类型(一)》):AAC: AAC其实是“高级音频编码(advanced audio coding)”的缩写,它是被设计用来取代MP3格式的。你可能会想,它压缩了原始的声音,导致容量占用少但是质 阅读全文
posted @ 2012-09-24 15:39 Pinka 阅读(4433) 评论(0) 推荐(0) 编辑
摘要: 之前,上一个版本的Live SDK各种内存泄露的bug弄得我比较烦躁,程序闪退崩溃,还要把后台的其他程序的内存都全部占用了。这太不科学了,但是新版本SDK又出现了 一个新问题,就是调用delegate的方法时不检查对象是否已经被dealloc了。我估计它用的是__unsafe_unretained的指针,所以即使对象释放了,指针也不会变为nil。然后就不管3721直接调用该对象的delegate方法,那么程序肯定会马上出错了。但这种错误在上一版SDK上是不会出现的,因为上一版的内存泄露导致controller不会dealloc,同时也不会显现出调用delegate方法出错的问题。一、内存释放b 阅读全文
posted @ 2012-09-17 10:49 Pinka 阅读(345) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2012-09-03 19:23 Pinka 阅读(150) 评论(3) 推荐(2) 编辑