<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[技术荆棘路]]></title><description><![CDATA[——逆风飞的鱼]]></description><link>https://blog.youkuaiyun.com/gavinming</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; gavinming]]></copyright><item><title><![CDATA[UIView传递Touch Event 等事件]]></title><link>https://blog.youkuaiyun.com/gavinming/article/details/7457450</link><guid>https://blog.youkuaiyun.com/gavinming/article/details/7457450</guid><author>gavinming</author><pubDate>Fri, 13 Apr 2012 13:32:26 +0800</pubDate><description><![CDATA[在构建自定义UI的时候，有时候会经常在一层UIView上再覆盖一层UIView，例如父层的view管理touch事件和数据，当在该view上覆盖一层view后，就无法把touch事件传递到父view上；而如果把数据传递到子类，在子类上去管理touch事件，这样会打乱逻辑上的分层。
       由于事件是在responder 链上传递的，当上一层的view不做响应时，可以把事件传递到下一层的vi]]></description><category></category></item><item><title><![CDATA[UITableView 多选(Multiple Select)列表的实现]]></title><link>https://blog.youkuaiyun.com/gavinming/article/details/7377601</link><guid>https://blog.youkuaiyun.com/gavinming/article/details/7377601</guid><author>gavinming</author><pubDate>Wed, 21 Mar 2012 13:45:39 +0800</pubDate><description><![CDATA[最近的项目需要用到多选列表，照例自己有了初步想法之后，google了下其他人的实现，发现了两个主要的实现方法：


在设置cell的editingStyle为3。不过这个属性是非公开的，所以使用会有被打回的风险；而且使用固定数字返回的话，Api更新有可能导致不可预估的问题；再者无法对选中标记进行定制。请参考：http://www.iphonedevwiki.net/index.php?tit]]></description><category></category></item><item><title><![CDATA[深入浅出Cocoa之类与对象——罗朝辉]]></title><link>https://blog.youkuaiyun.com/gavinming/article/details/7276035</link><guid>https://blog.youkuaiyun.com/gavinming/article/details/7276035</guid><author>gavinming</author><pubDate>Mon, 20 Feb 2012 15:19:05 +0800</pubDate><description><![CDATA[转载自：http://www.cppblog.com/kesalin/archive/2012/01/19/objc_class_object.html

最近打算写一些ObjC中比较底层的东西，尤其是 runtime 相关的。苹果已经将 ObjC runtime 代码开源了，我们可以从：http://opensource.apple.com/source/objc4/objc4-493.9/]]></description><category></category></item><item><title><![CDATA[iOS object-c 面试题]]></title><link>https://blog.youkuaiyun.com/gavinming/article/details/7264448</link><guid>https://blog.youkuaiyun.com/gavinming/article/details/7264448</guid><author>gavinming</author><pubDate>Thu, 16 Feb 2012 15:47:54 +0800</pubDate><description><![CDATA[面试了几轮了，总结下面试中会被经常提问到的问题:


1.iPad开发与iPhone开发有什么不同？

答：开发iPad和iPhone应用使用的是相同的SDK，它们之间的区别主要体现在设备硬件和UI操作上。(1)设备硬件：由于iPad不具备电话功能，iPad1也没有相机，所以相关的特性如电话、SMS等无法使用。(2)UI操作:由于iPad屏幕大小为9.7英寸，而iPhone的屏幕是3.5]]></description><category></category></item><item><title><![CDATA[KVC(Key-value coding)机制]]></title><link>https://blog.youkuaiyun.com/gavinming/article/details/7061578</link><guid>https://blog.youkuaiyun.com/gavinming/article/details/7061578</guid><author>gavinming</author><pubDate>Thu, 02 Feb 2012 16:36:19 +0800</pubDate><description><![CDATA[KVC(Key-value coding)是一套利用字符串标识符间接访问对象属性和关系的机制。Cocoa Programming中，Core Data，Application Scriptability， 绑定(Binding)技术和声明属性之一语言特性等，都是以KVC为基础的。(Application Scriptability 和 绑定(Binding)是Mac OS X上特有的)。你也可以用]]></description><category></category></item><item><title><![CDATA[《编程珠玑(第2版)》笔记——将一个n元一维向量向左旋转i个位置（第2章）]]></title><link>https://blog.youkuaiyun.com/gavinming/article/details/7225275</link><guid>https://blog.youkuaiyun.com/gavinming/article/details/7225275</guid><author>gavinming</author><pubDate>Wed, 01 Feb 2012 15:13:44 +0800</pubDate><description><![CDATA[第2章 啊哈！算法

《编程珠玑(第2版)》的第2章，一开始就给出三个问题，其中问题B很有意思：将一个n元一维向量向左旋转i个位置。例如，当n=8且i=3时，向量abcdefgh旋转为defghabc。简单的代码使用一个n元的中间向量在n步就能够完成该工作，你能否仅使用数十个额外字节的存储空间，正比于n的时间内完成向量旋转。
其实就像问题中提到的，如果不考虑空间，这是个很简单的问题。但考虑到]]></description><category></category></item><item><title><![CDATA[优化——UIScrollView通过内容延迟加载以达到平滑滑动。]]></title><link>https://blog.youkuaiyun.com/gavinming/article/details/7218613</link><guid>https://blog.youkuaiyun.com/gavinming/article/details/7218613</guid><author>gavinming</author><pubDate>Mon, 30 Jan 2012 00:03:06 +0800</pubDate><description><![CDATA[前面写了一篇《UIScrollView 平滑划动处理》,是通过延迟操作来达到平滑移动，但操作起来比较生涩，而且逻辑较复杂，现在已经弃之不用。
前文已经提到，将所有的内容页全部加入到ScrollView是最简单的方法，而且能够非常平滑划动，但如果是大数据量的时候，明显是不适用的。最近参考了Three20的TTScrollView以及TTPhotoViewController后，终于找到了一种内容页]]></description><category></category></item><item><title><![CDATA[自定义输出宏替代NSLog]]></title><link>https://blog.youkuaiyun.com/gavinming/article/details/7218574</link><guid>https://blog.youkuaiyun.com/gavinming/article/details/7218574</guid><author>gavinming</author><pubDate>Sun, 29 Jan 2012 22:32:31 +0800</pubDate><description><![CDATA[开发过程中，难免会使用NSLog来打印信息用于调试，但releae的软件却不能包含NSLog，否则有被打回的风险，但难道要在发布前把全部的NSLog都注释掉？那后续的调试呢？
下面，我们可以采用自定义宏来取代NSLog，只在DEBUG模式下输出Log信息。
#ifdef DEBUG_MODE
#define DLog( s, ... ) NSLog( @" %@", [[NSString st]]></description><category></category></item><item><title><![CDATA[求质数（Prime Number 素数）的方法——厄拉多塞筛法]]></title><link>https://blog.youkuaiyun.com/gavinming/article/details/7212980</link><guid>https://blog.youkuaiyun.com/gavinming/article/details/7212980</guid><author>gavinming</author><pubDate>Sat, 21 Jan 2012 01:48:19 +0800</pubDate><description><![CDATA[质数又称素数。指在一个大于1的自然数中，除了1和此整数自身外，没法被其他自然数整除的数。换句话说，只有两个正因数（1和自己）的自然数即为素数。比1大但不是素数的数称为合数。1和0既非素数也非合数。合数是由若干个质数相乘而得到的。所以，质数是合数的基础，没有质数就没有合数。


【1】一般方法
素数是除了1和它本身之外再不能被其他数整除的自然数。由于找不到一个通项公式来表示所有的素数，所以对]]></description><category></category></item><item><title><![CDATA[切忌在多线程中刷新界面]]></title><link>https://blog.youkuaiyun.com/gavinming/article/details/7168931</link><guid>https://blog.youkuaiyun.com/gavinming/article/details/7168931</guid><author>gavinming</author><pubDate>Sat, 31 Dec 2011 16:30:01 +0800</pubDate><description><![CDATA[切忌在多线程中刷新界面]]></description><category></category></item><item><title><![CDATA[NSOperationQueue线程队列完毕finished状态检测]]></title><link>https://blog.youkuaiyun.com/gavinming/article/details/7061719</link><guid>https://blog.youkuaiyun.com/gavinming/article/details/7061719</guid><author>gavinming</author><pubDate>Sun, 11 Dec 2011 20:34:22 +0800</pubDate><description><![CDATA[参考：http://stackoverflow.com/questions/1049001/get-notification-when-nsoperationqueue-finishes-all-tasks
     多线程编程中，操作队列NSOperationQueue我们经常会用到的，简化了多线程的操作。至于用法就不多介绍了。这里要说的是队列执行完毕的状态检查。
      我们很多时候需]]></description><category></category></item><item><title><![CDATA[TTPhotoViewController 在不同interfaceOrientation下的显示问题]]></title><link>https://blog.youkuaiyun.com/gavinming/article/details/6756769</link><guid>https://blog.youkuaiyun.com/gavinming/article/details/6756769</guid><author>gavinming</author><pubDate>Wed, 07 Sep 2011 14:57:10 +0800</pubDate><description><![CDATA[最近在使用Three20库进行开发，并使用了TTPhotoViewController 来显示照片，不清楚大家是否遇到过我这样的问题：直接TTPhotoViewController ，使用在竖屏的时候，图片显示是错误了，此时图片上自动放大，且经常会显示到其他页的图片；而在横屏的情]]></description><category></category></item><item><title><![CDATA[UIScrollView 平滑划动处理]]></title><link>https://blog.youkuaiyun.com/gavinming/article/details/6745988</link><guid>https://blog.youkuaiyun.com/gavinming/article/details/6745988</guid><author>gavinming</author><pubDate>Sat, 03 Sep 2011 20:54:35 +0800</pubDate><description><![CDATA[iOS开发经常会用到UIScrollView，而能够平滑的展示划动效果，是至关重要的。比较常用的方法有两种：
      1）将所有的scrollview子页面都add到scrollview中，这样可以平滑滑动，但占用资源加多，并且初始化加载比较慢。
      2）使用三个页面View，在滑动过程中如指针轮询那样交替使用。优点是占用内存少，但如果单个页面比较大，经常会在划动到中间位置的时候，]]></description><category></category></item><item><title><![CDATA[分析优酷HTML5地址]]></title><link>https://blog.youkuaiyun.com/gavinming/article/details/6696404</link><guid>https://blog.youkuaiyun.com/gavinming/article/details/6696404</guid><author>gavinming</author><pubDate>Wed, 17 Aug 2011 21:37:48 +0800</pubDate><description><![CDATA[分析优酷HTML5地址
技术不懂,2011年03月25日.

YouTube已经支持HTML5嵌入。YouKu目前全站支持HTML5，不过嵌入代码还是Flash的。抽空分析了下HTML5下的播放地址，很简单。

update:2011-04-27
发现获取m3u8 最]]></description><category></category></item><item><title><![CDATA[UIScrollView，点击、滑动翻页事件的区分]]></title><link>https://blog.youkuaiyun.com/gavinming/article/details/6552565</link><guid>https://blog.youkuaiyun.com/gavinming/article/details/6552565</guid><author>gavinming</author><pubDate>Fri, 17 Jun 2011 21:02:00 +0800</pubDate><description><![CDATA[       最近看到有人问这个问题：在UIScrollView上添加了一个View，View上面有图片等元素，需要对单击和滑动事件进行区分。这样的问题有以下几个经常会用到的地方：     （1）点击UIScrollView上的图片，跳转到其他页面；同时不影响UIScrollView的滑动操作。     （2）在阅读浏览类产品会经常用到，点击屏幕的中间区域，隐藏/显示状态栏或导航条；同]]></description><category></category></item><item><title><![CDATA[关于腾讯订阅的分析报告]]></title><link>https://blog.youkuaiyun.com/gavinming/article/details/6552287</link><guid>https://blog.youkuaiyun.com/gavinming/article/details/6552287</guid><author>gavinming</author><pubDate>Fri, 17 Jun 2011 17:16:00 +0800</pubDate><description><![CDATA[ 1、引言    最近在做一个App Store上的电子杂志类型的应用软件（下文简称app），其中外观设计和用户交互性设计主要是由客户决定，兼参考了《周末画报》、《三联生活周刊》、《商业价值》和《网易新闻》等一系列优秀的应用。其中《周末画报》外观设计和交互性设计做得尤为令人赞叹，《三联生活周刊》与《周末画报》类似，而《商业价值》则是简洁大气，排版明确；而《网易新闻》则是新闻]]></description><category></category></item><item><title><![CDATA[TextView里限制输入字数的方法]]></title><link>https://blog.youkuaiyun.com/gavinming/article/details/6413968</link><guid>https://blog.youkuaiyun.com/gavinming/article/details/6413968</guid><author>gavinming</author><pubDate>Thu, 12 May 2011 10:50:00 +0800</pubDate><description><![CDATA[<br /> <br />     一开始采用的方法是函数textView:shouldChangeTextInRange:replacementText:来进行判断：<br />//键入Done时，插入换行符，然后执行addBookmark
- (BOOL)textView:(UITextView *)textView
    shouldChangeTextInRange:(NSRange)range 
    replacementText:(NSString *)text
{
    //]]></description><category></category></item><item><title><![CDATA[Xcode实用功能纪实]]></title><link>https://blog.youkuaiyun.com/gavinming/article/details/6197481</link><guid>https://blog.youkuaiyun.com/gavinming/article/details/6197481</guid><author>gavinming</author><pubDate>Mon, 21 Feb 2011 12:02:00 +0800</pubDate><description><![CDATA[<br /> <br />   记录Xcode的实用功能。<br /> <br />1.代码自动完成功能：在Xcode的进行编码的时候，很多人以为它的代码提示功能不好用，提示不够智能，不能出提示列表。其实Xcode有个代码自动完成功能，在编码的时候，按Esc键，就出现自动提示列表了。列表里的名称的彩色方框表示这个符号的类型：E表示枚举，f表示函数，#表示#define指令，m表示方法，C表示类等。<br /> <br />2.在完成了代码自动完成之后，自动完成的代码有参数需要输入的时候，参数显示占位符，此时]]></description><category></category></item><item><title><![CDATA[Android，对话框定时自动关闭的实现]]></title><link>https://blog.youkuaiyun.com/gavinming/article/details/6120051</link><guid>https://blog.youkuaiyun.com/gavinming/article/details/6120051</guid><author>gavinming</author><pubDate>Thu, 06 Jan 2011 13:14:00 +0800</pubDate><description><![CDATA[    初学Android没几天，最近在做一个项目，需要实现对话框弹出一段时间后自动消失，网上查找了部分资源并参考了SDK后，整理了下相关的方法：      实现对话框的弹出消隐，现实主要的方法是使用Toast。Toast一般的使用很简单，一行代码即可：Toast.makeText(getApplicationContext(), "默认Toast样式", Toast.LENGTH_SHORT).show();      当然，Toast使用不限于此，强大的武器就是这样，菜鸟可以简单上手，高手也可以玩出花样]]></description><category></category></item><item><title><![CDATA[Java 调用EXE]]></title><link>https://blog.youkuaiyun.com/gavinming/article/details/5579799</link><guid>https://blog.youkuaiyun.com/gavinming/article/details/5579799</guid><author>gavinming</author><pubDate>Tue, 11 May 2010 18:18:00 +0800</pubDate><description><![CDATA[使用Runtime.getRuntime().exec()方法可以在java程序里运行外部程序.     该方法有6个可访问版本:     1.exec(String   command)     2.exec(String   command,   String   envp[],   File   dir)       3.exec(String   cmd,   String   envp[]]></description><category></category></item></channel></rss>