自定义博客皮肤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工匠——只为更精致的产品

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

原创 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 13903 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 1920

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

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

2014-08-22 15:30:00 5255 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 15701 8

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

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

2014-08-12 15:38:52 1690

原创 Effective Objective-C(第47-52条)系统架构,foundation、for-in、NSTimer

第47条:熟悉系统框架        若是不了解系统架构所提供的内容,那么就可能会把其中已经实现的东西再写一遍。将一系列代码封装为动态库(dynamic library),并在其中放入描述其接口的头文件,这样做出来的东西就叫框架。然而iOS应用程序不允许在其中包含动态库。        开发者使用最对的是Foundation框架,像NSObject、NSArray、NSDictionary

2014-08-10 15:13:57 2350

原创 Effective Objective-C(第41-46条)gcd大中枢派发、performSelector

OC中多线程编程的核心就是block与gcd。这虽然是两种不同的技术,但他们是一并引入的。block是一种可在C、C++及OC代码中使用的“词法闭包”(lexical closure),它极为有用,借此机制,开发者可将代码像对象一样传递,令其在不同环境(context)下运行。在block的范围内,它可以访问到其中的全部变量。 gcd是一种与block有关的技术,它提供了对线程的抽象,而这种抽象基于“派发队列”(dispatch queue)。开发者可将block排入队列中,有gcd负责处理所有调度

2014-08-10 15:08:59 1928

原创 Effective Objective-C(第37-40条)block在栈上?在堆上?

OC中多线程编程的核心就是block与gcd。这虽然是两种不同的技术,但他们是一并引入的。block是一种可在C、C++及OC代码中使用的“词法闭包”(lexical closure),它极为有用,借此机制,开发者可将代码像对象一样传递,令其在不同环境(context)下运行。在block的范围内,它可以访问到其中的全部变量。 gcd是一种与block有关的技术,它提供了对线程的抽象,而这种抽象基于“派发队列”(dispatch queue)。开发者可将block排入队列中,有gcd负责处理所有调度

2014-08-10 15:08:45 3925 4

原创 Effective Objective-C(第29-36条)内存管理篇,ARC、循环引用、引用计数

在OC这种面向对象语言里,内存管理是个重要概念。要像用一门语言写出内存使用效率较高且又没有bug的代码,就得掌握内存管理模型的种种细节。一旦理解这些规则,你就会发现,其实OC的内存管理没有那么复杂,再进入ARC之后就更为简单了。

2014-08-10 15:08:08 4005

原创 Effective Objective-C(第23-28条)类别、协议,代理,匿名对象、delegate

对象之间经常需要相互通信,而通信方式有很多。Objective-C开发者广泛使用一种名叫“委托模式”(Delegate Pattern)的编程设计模式来实现对象间的通信,该模式的主旨是:定义一套接口,某对象若想接收另一个对象的委托,则需遵从此接口,以便称为“委托对象”(delegate)。而这“另一个对象”则可以给其委托对象回传一些信息,也可以在发生相关联时间时通知委托对象。

2014-08-10 15:07:21 2694

原创 《Effective Objective-C 2.0》—(第47-52条)—系统架构,foundation、快速遍历for-in、NSTimer

collection使用无缝桥接快速遍历for-in的使用谨慎NSTimer的循环引用

2014-08-10 15:07:15 1027

原创 Effective Objective-C(第15-22条)接口与API设计、深拷贝、浅拷贝

近年来,开源社区与开源组件随着iOS开发而流行起来,我们经常使用别人的代码,别人也会看到你的代码。所以,我们要把代码写得清晰一些

2014-08-10 15:06:55 1917

原创 Effective Objective-C(第11-14条)动态绑定、objc_msgSend、消息转发机制

第11条:理解objc_msgSend的作用    在对象上调用方法是Objective-C中经常使用的功能。用Objective-C术语来说这叫做:“传递消息”(pass a message)。消息有“名称”(name)或者“选择子”(selector),可以接收参数,而且可能还有返回值。    由于Objective-C是C的超集,所以最好理解C语言的函数调用方式。C语言使用“静态绑定

2014-08-10 15:06:27 3859 1

原创 Effective Objective-C(第6-10条)对象、属性、equalToString、关联对象

用Objective-C等面向对象语言编程时,“对象”(object)就是“基本构造单元”(building block),开发者可以通过对象来存储并传递数据。在对象之间传递数据并执行任务的过程就叫做“消息传递”(Messaing)。

2014-08-10 15:04:00 2204

原创 Effective Objective-C(第1-5条)熟悉Objective-C

Objective-C通过一套全新的语法,在C语言基础上添加了面向对象特性。OC的语法中频繁使用方括号,而且不吝于写出极长的方法名,这通常令许多人觉得此语言较为冗长。这是这样写出来的代码非常易读,只是C++和Java程序员不太适应。 OC语言学起来很快,但有很多微妙细节需要注意,而且还有许多容易为人所忽略的特性。另一方面,有些开发者并未完全理解或是容易滥用某些特性,导致写出来的代码难以维护,难以调试。本章讲解基础知识,后续各章语言及其相关架构的各个特定话题。

2014-08-10 15:03:28 2038

转载 对比iOS网络组件:AFNetworking 和 ASIHTTPRequest

在开发iOS应用过程中,如何高效的与服务端API进行数据交换,是一个常见问题。一般开发者都会选择一个第三方的网络组件作为服务,以提高开发效率和稳定性。这些组件把复杂的网络底层操作封装成友好的类和方法,并且加入异常处理等。那么,大家最常用的组件是什么?这些组件是如何提升开发效率和稳定性的?哪一款组件适合自己,是 AFNetworking(AFN)还是 ASIHTTPRequest(ASI)?

2014-08-02 11:00:00 1505

原创 c语言实现tree数据结构

该代码实现了tree的结构,依赖dyArray数据结构。有first一级目录,second二级目录。dyArray的c实现参考这里点击打开链接  hashTable的c实现参考这里点击打开链接下面是跨平台的数据类型定义//// cpPlatform.h// dataStruct//// Created by hherima on 14-7-29.// Copyrigh

2014-08-01 11:23:20 5764

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关注的人

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