自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

郭晓东的专栏

IT工匠——只为更精致的产品

  • 博客(257)
  • 资源 (17)
  • 收藏
  • 关注

原创 探究contentOffset和contentInset,并解决上拉加载更多,uitableview抖动问题

从loading开始,加载更多后,“悄巴蜀”这个cell出来了,但是tableview先向下滑动,在向上滑动,产生了抖动现象。【原因】当loading的时候,contentInset.bottom是172,当loading隐藏的时候contentInset.bottom = 56.这是因为在对tableview的contentInset赋值的时候,contentOffset也会相应改变。contentOffset的变化导致了抖动。下面的log展示了,contentInset和contentOffset相

2015-04-02 01:04:15 20746

转载 iOS开发工具——统计Crash的工具Crashlytics

原文地址:http://tech.ddvip.com/2013-07/1375034417199825.html简介    Crashlytic 成立于2011年,是专门为移动应用开者发提供的保存和分析应用崩溃信息的工具。Crashlytics的使用者包括:支付工具Paypal, 点评应用Yelp, 照片分享应用Path, 团购应用GroupOn等移动应用。    2013年1月,

2015-04-01 14:15:26 1288

原创 iOS 程序进入后台,包括用户上拉快捷菜单导致程序失去活跃的研究

下面是常见的几种程序进入后台,或者失去活跃的操作。1. 点击home键,程序进入后台:先调用 applicationWillResignActive,再调用applicationDidEnterBackground2. 双击home键,程序进图标入任务管理器:只调用applicationWillResignActive。如果你点击别的程序,那么别的程序进入前台,本App调用applicationDidEnterBackground3. 上拉,下拉菜单,程序仍在前台:只调用applicationW

2015-04-01 10:22:02 2321

转载 三目运算符“?:”省略中间操作数的分析

/** Author: Godbach * Blog:http://blog.chinaunix.net/u/33048/index.html* 本文欢迎自由转载,但请标明出处,并保证本文的完整性。*/   内核代码sch_fifo.c中函数fifo_init的代码如下:static int fifo_init(struct Qdisc *sch, struct rtatt

2015-03-31 19:31:44 7168 2

转载 关于Content-Type的全部类型

Description of Data ContentTypical Filename Extensions MIME type/subtype    Text and Text-Related Types   HTML text data (RFC 1866)

2015-03-13 16:48:13 5711

原创 iOS类别(Category)与扩展(Extension,匿名类别)

iOS类别(Category)与扩展(Extension,匿名类别) ;包括两者的区别。

2015-03-13 16:06:37 6270 1

原创 隐藏导航条底部的黑线(shadowImage)四种办法

隐藏导航条底部的黑线(shadowImage)的四种办法

2015-03-12 10:57:30 13677 3

原创 把UIColor(纯色值)对象转化成UIImage对象

把UIColor(纯色值)对象转化成UIImage对象

2015-03-12 10:36:39 2591

转载 各种排序算法的总结和比较

1 快速排序(QuickSort)快速排序是一个就地排序,分而治之,大规模递归的算法。从本质上来说,它是归并排序的就地版本。快速排序可以由下面四步组成。(1) 如果不多于1个数据,直接返回。(2) 一般选择序列最左边的值作为支点数据。(3) 将序列分成2部分,一部分都大于支点数据,另外一部分都小于支点数据。(4) 对两边利用递归排序数列。快速排序比大部分排序算法

2015-03-09 23:30:23 1002

原创 IM软件客户端,使用状态机来保持在线状态

各个状态步骤说明:1. 启动登录(跟logout相似)2. 登录中。触发条件:手动登录,网络可用通知3. 登录成功4. 登录失败。原因有多种可能是网络5. 密码被改了,本地登录还是使用旧的密码,直接注销6. 因为网络问题掉线了7. 手动或被动注销,被踢。

2015-03-09 16:48:31 3254

转载 instancetype和id类型区别

苹果在iOS 8中全面使用instancetype代替idSteven Fisher:只要一个类返回自身的实例,用instancetype就有好处。@interface Foo:NSObject - (id)initWithBar:(NSInteger)bar; // initializer + (id)fooWithBar:(NSInteger)bar; // convenienc

2015-03-03 23:32:42 1388

转载 iOS关联,objc_getAssociatedObject, objc_setAssociatedObject

关联关联是指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分。关联特性只有在Mac OS X V10.6以及以后的版本上才是可用的。在类的定义之外为类增加额外的存储空间        使用关联,我们可以不用修改类的定义而为其对象增加存储空间。这在我们无法访问到类的源码的时候或者是考虑到二进制兼容性的时候是非常有用。        关联是基于关键字的,因此,我们

2015-03-01 21:18:53 4312

转载 Xcode 的正确打开方式——Debugging

程序员日常开发中有大量时间都会花费在 debug 上,从事 iOS 开发不可避免地需要使用 Xcode。这篇博客就主要介绍了 Xcode 中几种能够大幅提升代码调试效率的方式。“If debugging is the process of removing bugs, then programming must be the process of putting them in.”——Ed

2015-02-28 22:14:33 1592

原创 TCP网络传输“粘包”问题,经典解决(附代码)

关于TCP网络传输粘包,网上很多人写了原理。总结起来就一句话(这里拿Server和Client长连接,Server和Client之间通过信令传输做说明)Server发送的时候按照一条条信令发送,到达操作系统网络层,首先进入缓冲池,然后TCP协议层从池子中获取数据,传输给Client。我们知道TCP的传输有几个方案,比如,滑动窗口、1比特方案。所以Client收到的数据已经不可能是一个个完整的信令的。 个人理解TCP粘包的概念:它描述了一个场景:“信令是一个个紧挨着的,好像是被粘在一起了”。

2015-01-20 17:41:49 9255 2

原创 tableview中index对英文字符汉字字符(窄字符宽字符)处理

开发iOS通讯录项目,遇到一个tableview 索引的问题。测试同学发现一个bug:添加一个名字为宽字符A不能归并到索引A的section中,而是使用了添加了一个叫A的索引

2015-01-17 16:23:28 1731

原创 UINavigationController 缺点之一——【sdk缺陷】

在项目开发中遇到下面几个问题:1. 有些viewcontroller是中间界面(或者叫做过渡界面)是不能返回的2. 有时候,想更新一下已经push到navigationController中的viewController。3. 前两个结合的情况。

2014-12-14 17:45:57 1872 1

原创 iOS 修改通讯录联系人地址(address)崩溃原因分析

目前项目中需要对iOS系统通讯录进行读取,修改操作。在进行对地址修改的时候,出现了一个奇怪现象:● 如果contact没有address字段(或者一个全新的contact),对它的address进行修改是可以成功的,● 如果这个人有过address字段,此时对它就行修改就崩溃。控制台打出:*** -[CFString release]: message sent to deallocated instance 0x81d26f0这应该是一个僵尸对象,重复释放某一个对象。首先我对修改通讯录的代码进行

2014-11-29 13:09:13 2771

转载 nil Nil NULL NSNull 之间的区别

nil 是对objective c id 对象赋空值例如 NSString * string = [NSString stringWithFormat:@"test"]; string = nil; 对于objective c 集合类对象 比如数组对象,字典对象,当我们不需要再使用他们的时候,对他们release 的同时最好也把他们赋值为nil,这样确保安全性,下面一个

2014-11-19 10:51:43 1143

原创 使用sqlite3创建数据库表的时候需要注意

使用sqlite3创建数据库表的时候需要注意:1. 不能使用纯数字2. 不能带有"-","@"等字符。也不能以数字打头。

2014-11-01 02:23:04 4110 1

原创 sqlite3 插入数据的时候,返回SQLITE_CONSTRAINT

sqlite3 插入数据的时候,返回SQLITE_CONSTRAINT原因是:数据库的表的名字是纯数字。大改这个原因太诡异了,创建的时候可以创建成功。插入数据的时候就失败,因为表名是纯数字。附上错误的汉语解析

2014-10-30 20:11:39 7575

原创 tableview小结

初学者的问题主要集中在,下面几个问题:一、几个函数总是不被调用:例如:- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section;这个代理不被调用的种类很多:1. section的count没有正确2. 没有设置代理3.如果没有设置seciton的高度,仍然

2014-10-27 13:25:21 2245

原创 使用CFStringTransform将汉字转成拼音,非常耗时!

最近做一个通讯录项目,需要将联系人读入app内存(通讯录有400人左右),并依照首字母排序。这里使用了在将汉字转化成拼音的时候,iOS系统自带接口:注意self.latinString需要是一个mutable的string

2014-10-17 16:27:30 4143 1

原创 记事本输入“联通”俩字,关闭再打开乱码

这是个很有意思的事情。这里需要提一下ANSI,不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。然后,这些编码方式没有固定的格式,但是比如说UTF-8的格式是非常明显的,比如最高位是0,110,1110等等。“联”ANSI编码是 0xC1AA 二进制排列是 1100 0001 1010 1010;“通”ANSI编码是 0xCDA8 二进制排列是 1100 1101 1010 1000;

2014-09-25 11:48:38 12736 2

原创 iOS View的Frame和bounds之区别,setbounds使用(深入探究)

bounds的有以下两个特点:1. 它可以修改自己坐标系的原点位置,进而影想到“子view”的显示位置。这个作用更像是移动原点的意思。2. bounds,它可以改变的frame。如果bounds比frame大。那么frame也会跟着变大。这个作用更像边界和大小的意思。可以推测一下,setBound可以用于view的滑动,手势动作。

2014-09-24 14:34:41 12702 4

转载 iPhone 6 图像渲染揭秘

几天前,Apple发布了iPhone 6 Plus. 新的iPhone大幅改变了图像在屏幕上渲染的方式。我们做了一个图表进行详细分析。

2014-09-21 20:34:51 1281

原创 控制台——代码行数统计、删除.svn文件、静态库命令、protocBuf命令

在控制台,cd到你的工程目录下,执行下面命令:find . -name "*.[hm]" -print0 | xargs -0 wc -l结果如下:

2014-09-16 13:57:11 1708

转载 查找算法——二叉树查找

1.      查找树的创建(createTree)假设有如下数组4,1,45,78,345,23,12,3,6,21首先选定4为root,然后遍历剩下的数字,如果大于等于4则放到4的右侧,小于4放到4的左侧,最后构建成的树:所有的左孩子都小于父节点,所有的右孩子都大于等于父节点。如下图:2.      遍历查找树(displayTree)按照左中右的顺序遍历树,结果为:1,3,4

2014-09-15 18:20:49 8434

原创 iOS 容易引起“循环引用”的几种场景

目前总结了一下,在iOS平台容易引起循环引用的几个场景:一、parent-child模式二、block(编译器会提示警告)三、NSTimer

2014-09-10 16:18:07 15051

原创 列出一份ASCII 表省地到处找了!

列出一份ASCII表和扩展表,省的到处找了!

2014-09-01 11:39:41 1708

原创 iPhone emoji问题牵出的Unicode代理区的思考

emoji 没什么特别的,也是正常的Unicode编码,只是通过代理区实现 这里说的utf-8和utf-16,其实本质上是一样的。只是utf-8是一个直接的映射。而utf-16需要根据代理区的(前导代理,后尾代理)来映射。utf-16比utf-8多了一步而已!话又说回来:如果不是代理区域的出现,就emoji 微笑的unicode: 0X1-F603来说。计算机甚至不知道这是一个字符,还是两个字符!所以,搞了一个Unicode:D83D-DE03来表示unicode: 0X1-F603,防止计算机解码混

2014-08-31 18:51:00 13899 4

原创 iOS多线程中performSelector: 和dispatch_time的不同

我们知道:只有主线程会在创建的时候默认自动运行一个runloop,并且有timer,普通的子线程是没有这些的。这样就带来一个问题了,有些时候我们并不确定我们的模块是不是会异步调用到,而我们在写这样的延时调用的时候一般都不会去检查运行时的环境,这样在子线程中被调用的时候,我们的代码中的延时调用的代码就会一直等待timer的调度,但是实际上在子线程中又没有这样的timer,这样我们的代码就永远不会被调到。

2014-08-28 17:50:45 10426 3

原创 iOS 多线程编程gcd全面系统认识

这两天在看《OC高级编程-多线程编程和内存管理》日本人写的那本,该书对arc,block和gcd有了更深层次的解读,非常不错。现在总结一下gcd相关的知识。有关arc和block的参考arc 参考block 网上很多博客都对gcd有过讲解,很多是对gcd的全局队列,主线程队列,创建队列等等,做了单方面的描述,不是很全面系统。下面我们将学习一下系统得gcd。本文主要分为下面几个要点,前几个好点比较好理解,最后可能理解起来有些费劲!● 什么是gcd,iOS为什么要用多线程● 创建线程,序列线程和

2014-08-27 11:35:42 3288 1

原创 UITableView分组冻结的研究与实现浅析

当我们使用iphone手机通讯录,手机qq的时候。有一个细节大家可能已经忽略,即“分组”控件在向屏幕上方滑动时,超过屏幕的高度,就冻结到屏幕最上端。方便用户确定当前浏览的是哪个分组。当下面的分组上来时候,又会当前冻结的窗口顶上去,它自己又实现冻结!

2014-08-23 22:25:14 1919

原创 iOS 通讯录编程【总结】

1. 监听通讯录变更监听规则:当App活跃(前台+后台保活期间)的时候,当通讯录修改的时候,会收到通知当App不活跃的时候(挂起的时候),App收不到通知;而是,当App到前台的时候收到延迟的通知。

2014-08-22 15:30:00 5252 2

原创 __weak如何实现对象值自动设置为nil的

__weak 修饰符就像我们知道的那样__weak修饰符提供了如同魔法般的功能。● 若使用__weak修饰符的变量引用对象被废弃时,则将nil赋值给该变量● 使用附有__weak修饰符的变量,就是使用注册到autoreleasepool的对象。

2014-08-18 16:56:37 6619 1

原创 使用Xcode 查看objective-C的汇编代码

Xcode自带将某一个源文件转化成汇编的功能,

2014-08-18 14:30:41 11049

原创 【block第四篇】实现

-------------------------------------------欢迎查看block连载博客【专栏】--------------------------------------【block编程第一篇】block语法                   【block编程第二篇】block捕获变量和对象;【block编程第三篇】block的内存管理。     【block编程第四篇...

2014-08-16 22:23:13 18639 5

原创 【block第三篇】内存管理——如何验证block在栈上,还是堆上

这就需要引入三个名词:● _NSConcretStackBlock● _NSConcretGlobalBlock● _NSConcretMallocBlock正如它们名字说的那样,说明了block的三种存储方式:栈、全局、堆。【在ARC下】:似乎已经没有栈上的block了,要么是全局的,要么是堆上的。有一个特殊情况:如果仅仅定义了block没有赋值给变量的话,仍是在栈上,比如:【在非ARC下】:存在这栈、全局、堆这三种形式。

2014-08-16 22:21:31 15504 8

原创 拼图算法,将零碎小图,整理到一张大图之上,自动合并。二叉树实现

----------------------------------------------------欢迎查看IM软件业务知识《专栏》-------------------------------------------------------------------使用状态机来保持在线状态 【点击】                      拼图算法,将零碎小图,整理到一张大图上【点击】登录导...

2014-08-15 10:53:17 15700 8

原创 单词、字符串儿翻转,栈实现!

对字符串“this is very good”进行翻转,即“good very is this”;思路:1.字符串的翻转的问题,可以使用栈实现。2.先把所有字符翻转,然后对再对某一个单词翻转,最终实现题目要求。

2014-08-12 15:38:52 1690

build-protobuf-2.5.0.sh

Xcode 5 / iOS 7配置ProtoBuf脚本

2015-06-22

树tree、动态数组dyArray、hashMap、拼图算法

树:采用C语言实现 动态数组dyArray:采用C语言实现 hashMap,采用链表实现hash 拼图算法:采用二叉树结果拼图算法

2014-08-15

iOS平台ProtocolBuf说明

简单说明protobuf的使用,编码,使用!

2014-03-11

30行实现iOS下gif显示(xcode)

30行实现iOS下gif显示(xcode)完美实现gif的播放。

2013-11-05

core-data和sqlite3性能对比demo

◆ Core Data是一个功能强大的层,位于SQLite数据库之上, 它避免了SQL的复杂性,能让我们以更自然的方式与数据库进行交互 ◆ 这样看来它跟Sqltie3在速度上是没有可比性的。Sqlite3肯定要快! ◆ 但是快多少?还有那些优劣,这是我们要研究的!

2013-06-18

volatile,nonatomic和atomic关键字测试

主要研究四种变量(属性)的存取速度. volatile nonatomic atomic和正常变量

2013-05-28

utf8,unicode,gbk,base64实现

utf8,unicode,gbk,base64实现,温习一下这个过程。

2013-03-25

urlencode urldecode实现

urlencode urldecode实现,在xcode里使用c++混编

2013-03-21

多叉树解析关键字,滑动引擎

利用多叉树解析关键字,另外还包括自制滑动引擎的实现。

2013-03-20

iOS 显示汉字的Unicode和UTF-8编码

iOS 显示汉字的Unicode和UTF-8编码

2013-03-10

网络传输文本,urlEncode和decode的实现。

网络传输文本,urlEncode和decode的实现。 在vs 2005上通过实验。

2013-03-04

ios 简单绘制文本,线条,图片,动画,按钮

ios 简单绘制文本,线条,图片,动画,按钮

2013-03-04

iOS Tableview

简单的Tableview,也就是我们平常用的list

2013-03-04

symbian v3 五子棋游戏——原创

经典游戏五子棋,Symbian s60 第三版。 绝对原创。 你不一定下得过它哦。 支持源代码开发!

2010-06-30

symbian半透明例子(原创,容易理解).rar

包含 1.在程序里使用直接引用汉字显示到屏幕。 2.图片半透明,按上下键查看效果。

2010-03-26

visual studio2005配置qt环境.doc

看看怎么在visual studio 2005上配置Qt运行环境。

2009-06-27

在VC下编译运行MiniGUI程序

经过 配置minigui可以在 visual studio 下运行

2009-03-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除