Fork me on GitHub

2012年2月18日

摘要: http://d2100.com/questions/29022作为依赖关系的另一个 NSOperation 添加时不调用 NSOperation dealloc使用文书我看到很多我自定义的 NSOperation 永远不会被释放。我已经把一个断点放在 dealloc 方法中,它叫做永远不会。我还注意到作为依赖关系的另一个 NSOperation 添加任何 NSOperation 时出现问题。如果我从我的代码中删除以下句子,称为 myOperation 的 dealloc 方法。[otherOperation addDependency:myOperation];我新建类@interface 阅读全文
posted @ 2012-02-18 21:34 pengyingh 阅读(3499) 评论(0) 推荐(0)
摘要: 这篇文章我们一起来看看Objective-C位运算符。Objective-C语言中有各种各样的运算符可处理数字中的特定位,如下表所示:符号运算&按位与|按位或^按位异或~一次求反<<向左移位>>向右移位表中列出的所有运算符,除一次求反运算符(~)外,都是二元运算符,因此需要两个运算数。位运算符可处理任何类型的整型值,但不能处理浮点值。1、按位运算符对两个值执行与运算时,会逐位比较两个值的二进制表示。第一个值与第二个值对应位都为1时,在结果的对应位上就会得到1,其他的组合在结果中都得到0。如果b1和b2表示两个运算数的对应位,那么下表(称为真值表)就显示了在b1和 阅读全文
posted @ 2012-02-18 14:03 pengyingh 阅读(9811) 评论(0) 推荐(0)
摘要: Objective-C获取消息工作原理是本文要介绍的内容,看name mangling的时候,也讲到了Objective-C的name mangling,于是又重新读了一下Objective-C2.0 programming Language以及Objective-C2.0 Runtime Reference里的相关内容,自己归纳一下。先贴一段代码:123456789101112131415161718192021222324252627282930MyClass.h @interface MyClass : NSObject { } @end MyClass.m #import #impor 阅读全文
posted @ 2012-02-18 14:00 pengyingh 阅读(870) 评论(0) 推荐(0)
摘要: Objective-C中,在变量声明前加上关键字static,可以使局部变量保留多次调用一个方法所得的值。例如下面的一句Objective-C语句:static int hitCount = 0;声明整数hitCount是一个static静态变量。和其他常见局部变量不同,Objective-C中的static静态变量的初始值为0,所以前面显示的初始化是多余的。此外,它们只在程序开始执行时初始化一次,并且在多次调用方法时保存这些数值。所以编码序列1234567-(void) showPage{static int pageCount = 0;...++pageCount;...}可能出现在一个s 阅读全文
posted @ 2012-02-18 13:56 pengyingh 阅读(6022) 评论(0) 推荐(0)
摘要: 随着智能手机的流行,越来越多的开发者加入了移动应用的开发行列。但是面对如此众多的操作系统,开发者通常都会遇到这样的问题:目前主流的移动平台 (iOS和Android)应用程序,都需要采用不同的计算机语言来开发,这意味着同样一款应用,需要为不同的系统编写不同的代码,开发成本比较高。为了解决这个问题,有不少手机开发框架流行起来。下面我简单介绍一下Titanium和PhoneGap框架,并就开发人机语音交互应用以及和本地库混编两部分分享一下我的经验。Appcelerator Titanium官方网站:http://www.appcelerator.com使用JavaScript语言可以很方便的开发A 阅读全文
posted @ 2012-02-18 13:31 pengyingh 阅读(3937) 评论(0) 推荐(0)
摘要: 功能需求这个缓存机制满足下面这些功能。1、可以将数据缓存到本地磁盘。2、可以判断一个资源是否已经被缓存。如果已经被缓存,在请求相同的资源,先到本地磁盘搜索。3、可以判断文件缓存什么时候过期。这里为了简单起见这里,我们在请求url资源的时候,给每次请求的文件设定一个过期的时间。4、可以实现:如果文件已经被缓存,而且没有过期,这将本地的数据返回,否则重新请求url。5、可以实现:如果文件下载不成功或者下载没有完成,下次打开程序的时候,移除这些没有成功或者没有下载完成的文件。6、可以实现:同时请求或者下载多个资源。设计实现:1、设计一个CacheItem类,用来请求一个web连接,它的一个实例表示一 阅读全文
posted @ 2012-02-18 11:06 pengyingh 阅读(2942) 评论(1) 推荐(0)
摘要: 这篇文章主要讲解了如何在iPhone开发中利用UITableView实现树视图,在iPhone中,如果树层次过多,势必造成用户操作起来不方便,那我们来找一种折中的方案解决这个问题。iPhone实现树视图的原文如下:本文的目的,是研究有没有可能在一个TableView 中呈现树形数据,尤其是树形菜单。众多的网络资料都强调,Cocoa框架不支持树形视图,苹果推荐程序员使用 TableViewController+NavigationController的方式展现树形菜单。如果2-3层的树形数据还可以忍受,万一层次稍 多一点,必须反复的用导航按钮在视图中转来转去,显然并不太方便。何况笔者认为2-3层 阅读全文
posted @ 2012-02-18 11:04 pengyingh 阅读(493) 评论(0) 推荐(0)
摘要: @dynamic 意思是由开发人员提供相应的代码:对于只读属性需要提供 setter,对于读写属性需要提供 setter 和 getter。@synthesize 意思是,除非开发人员已经做了,否则由编译器生成相应的代码,以满足属性声明。查阅了一些资料确定@dynamic的意思是告诉编译器,属性的获取与赋值方法由用户自己实现, 不自动生成。@dynamic just tells the compiler that the getter and setter methods are implemented not by the class itself but somewhere else (l 阅读全文
posted @ 2012-02-18 11:02 pengyingh 阅读(1336) 评论(0) 推荐(0)
摘要: http://blog.sina.com.cn/s/blog_45e2b66c01010dhd.html1。GCD之dispatch queuehttp://www.cnblogs.com/scorpiozj/archive/2011/07/25/2116459.html2。iOS中GCD的魔力http://blog.csdn.net/favormm/article/details/64532603。官方 ,内容真的很多http://developer.apple.com/library/ios/#documentation/Performance/Reference/GCD_libdispa 阅读全文
posted @ 2012-02-18 10:59 pengyingh 阅读(15593) 评论(4) 推荐(4)
摘要: IOS多线程有三种主要方法(1)NSThread(2)NSOperation(3)GCD下面简单介绍这三个方法1.NSThread调用方法如下:如函数需要输入参数,可从object传进去。 (1) [NSThread detachNewThreadSelector:@selector(threadInMainMethod:) toTarget:self withObject:nil]; (2) NSThread* myThread = [[NSThread alloc] initWithTarget:self selector:@selector(threadInMainMethod:).. 阅读全文
posted @ 2012-02-18 10:53 pengyingh 阅读(2034) 评论(0) 推荐(0)
摘要: 声明一个块代码的引用块代码变量用来保存到块代码的引用。使用和声明函数指针相识的语法声明块代码变量,只是把其中的*换成占位符^。块代码类型基本上都是C语言的格式。下面就是一些有效的块代码变量声明:void (^blockReturningVoidWithVoidArgument)(void);int (^blockReturningIntWithIntAndCharArguments)(int, char);void (^arrayOfTenBlocksReturningVoidWithIntArgument[10])(int);块代码同样支持可变参数列表。没有参数的块代码必须在参数列表中使用v 阅读全文
posted @ 2012-02-18 10:44 pengyingh 阅读(326) 评论(0) 推荐(0)
摘要: http://blog.csdn.net/nicktang/article/details/6906352本章的几节使用例子代码来开始块代码的学习。定义和使用块代码插入符^有两个作用,一个是声明一个块代码变量,另一个是开始一个块代码的定义。块代码的代码部分是包含在一对大括号中的,就像下面演示的这样(使用C语言风格的分号;作为块代码行的结束):int multiplier = 7;int (^myBlock)(int) = ^(int num) { return num * multiplier;};下图是对块代码的详细演示:主义块代码中可以使用和它有同一个生存域的变量的。如果你声明了一个... 阅读全文
posted @ 2012-02-18 10:43 pengyingh 阅读(357) 评论(0) 推荐(0)
摘要: http://blog.csdn.net/nicktang/article/details/6906352一段时间以来,块代码已经成为Ruby,Python,Lisp等脚本语言和编译语言中的一部分(在这些语言中,可能被命名为“closures”或“lambdas”)。从Mac OS X v10.6和iOS 4.0开始,块代码,一个强大的C语言功能点,已经是Cocoa应用开发的一部分了。虽它的语法初看起来有点奇怪,但是你会发现它是很好用的。下面的讨论都是大概的描述,如果你希望非常详细,定义性的解释,请参看Blocks Programming Topics。为何使用块代码?块代码是一个能工作的代码 阅读全文
posted @ 2012-02-18 10:41 pengyingh 阅读(1475) 评论(0) 推荐(0)
摘要: GCD(Grand Central Dispatch)是一个大的主题。它可以提高代码的执行效率与多核的利用率。是苹果的开源项目,如果你是一个追求软件效率的开发人员,这门技术你一定要有所研究。今天要介绍的是如何从网上下载大量的文件, 方法有许多,传通的就是用多线程,面iOS中有很好用的Operator Queeu, 或者用传通的NStrhead, pthread. 今天我不介绍这些方法,而是得用GCD来完成这个下载任务。今天这个demo, 展示面几个功能:1. 预定义了大量的要下载的图片URL2. 创建一个GCD queue并开始下载图片3. 在动画出现消失的时候,同时显示图片主要代码:@int 阅读全文
posted @ 2012-02-18 10:32 pengyingh 阅读(269) 评论(0) 推荐(0)

导航