12 2012 档案

摘要:retain cycle 的产生说到retain cycle,首先要提一下Objective-C的内存管理机制。作为C语言的超集,Objective-C延续了C语言中手动管理内存的方式,但是区别于C++的极其非人道的内存管理,Objective-C提出了一些机制来减少内存管理的难度。 比如:内存计数。在Objective-C中,凡是继承自NSObject的类都提供了两种方法,retain和release。当我们调用一个对象的retain时,这个对象的内存计数加1,反之,当我们调用release时, 对象的内存计数减1,只有当对象内存计数为0时,这个对象才真正会被释放,此时,对象的delloc方 阅读全文
posted @ 2012-12-31 15:40 hhhker 阅读(12750) 评论(0) 推荐(5) 编辑
摘要:http://blog.csdn.net/tangren03/article/details/7860588 阅读全文
posted @ 2012-12-28 14:04 hhhker 阅读(191) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/rsp19801226/article/details/7513321 阅读全文
posted @ 2012-12-28 09:44 hhhker 阅读(207) 评论(0) 推荐(0) 编辑
摘要:iPhone应用程序是由主函数main启动,它负责调用UIApplicationMain函数,该函数的形式如下所示:int UIApplicationMain (int argc,char *argv[],NSString *principalClassName,NSString *delegateClassName);那么UIApplicationMain函数到底做了哪些事情呢?这个函数主要负责三件 事情:1)从给定的类名初始化应用程序对象,也就是初始化UIApplication或者子类对象的一个实例,如果你在这里给定的是nil,那么 系统会默认UIApplication类,也就主要是这个类 阅读全文
posted @ 2012-12-27 09:42 hhhker 阅读(297) 评论(0) 推荐(0) 编辑
摘要:添加静态库 类似与 windows中的.dll 文件 用于将工程中的 一些公共类 集合成 静态库 ,引入工程 引用静态库的好处就是免了版本升级还要替换一堆文件的问题下面 动手做一个吧. 常用的代码可以通过静态库进行抽出来作为公共类方法,方便在其他地方调用,一般来说我们要准备2套静态库,一套是模拟器上使用的,一套是真机使用的,创建静态库:在Xcode中新建一个Project.选择如下图:然后点next,下一步至于填写的东西随意. 创建工程后默认 只要跟你工程名一样的 两个文件.h .m下面 创建 另一个类 在Use_DefLibrary 中调用 M... 阅读全文
posted @ 2012-12-26 16:55 hhhker 阅读(1849) 评论(0) 推荐(0) 编辑
摘要:git 是网上很流行的版本控制工具 ,尝试 熟悉并使用 它(也有windows版本,这里介绍mac的)额,再操作前 先看看这个 并跟着做做http://www.uml.org.cn/pzgl/201204285.asp1,到github官网 申请账号 2,下载git git-1.7.2-intel-leopard.dmg 相关网址是:http://code.google.com/p/git-osx-installer/downloads/list3. 软件安装完毕,开始创建公共密钥建议 参照 官方文档 操作https://help.github.com/articles/generating. 阅读全文
posted @ 2012-12-25 11:22 hhhker 阅读(218) 评论(0) 推荐(0) 编辑
摘要:http://www.worldhello.net/gotgithub/03-project-hosting/050-homepage.html 阅读全文
posted @ 2012-12-25 10:37 hhhker 阅读(270) 评论(0) 推荐(0) 编辑
摘要:http://www.uml.org.cn/pzgl/201204285.asp 阅读全文
posted @ 2012-12-21 14:28 hhhker 阅读(152) 评论(0) 推荐(0) 编辑
摘要:http://my.oschina.net/sunqichao/blog/87110 阅读全文
posted @ 2012-12-21 09:46 hhhker 阅读(151) 评论(0) 推荐(0) 编辑
摘要:http://my.oschina.net/sunqichao/blog/87110 阅读全文
posted @ 2012-12-14 15:47 hhhker 阅读(163) 评论(0) 推荐(0) 编辑
摘要:http://my.oschina.net/sunqichao/blog/75011 阅读全文
posted @ 2012-12-14 14:25 hhhker 阅读(200) 评论(0) 推荐(0) 编辑
摘要:block 就是一个代码块,上代码:TestBlock类中 就是定义block 给 block 传入参数 ,“方法”体里 留到回调的地方 实现#import <Foundation/Foundation.h>typedef void (^BlockCallBack)(NSString *SayWhat);@interface TestBlock : NSObject{ BlockCallBack bcb;}@property(nonatomic,assign)BlockCallBack bcb;-(void)initBcb:(id)entity:(BlockCallBack)bc. 阅读全文
posted @ 2012-12-14 13:57 hhhker 阅读(4878) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/theonezh/article/details/7677086http://www.dreamingwish.com/dream-2012/of-of-of-of-gcd-introduced-1-basic-concepts-in-and-the-dispatch-queue.html 阅读全文
posted @ 2012-12-13 15:43 hhhker 阅读(164) 评论(0) 推荐(0) 编辑
摘要:两个核心方法:dispatch_async和dispatch_async_f,分别对应Block Objects方法和C Functions方法。我们举一个场景来进行:当我们需要从网络下载一个图片,可以将这个下载工作丢到一个异步线程里面,然后当图片下载完毕后,我们再交给主线程,让主线程去显示这个图片。在这种场景下,我们就需要甬道异步任务了。这里也涉及到了之前提到的__block方式操作本地资源。代码演示如下:dispatch_queue_t concurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 阅读全文
posted @ 2012-12-13 15:28 hhhker 阅读(1570) 评论(0) 推荐(0) 编辑
摘要:如何在 block 中修改外部变量?????考虑到 block 的目的是为了支持并行编程,对于普通的 local 变量,我们就不能在 block 里面随意修改(原因很简单,block 可以被多个线程并行运行,会有问题的),而且如果你在 block 中修改普通的 local 变量,编译器也会报错。那么该如何修改外部变量呢?有两种办法,第一种是可以修改 static 全局变量;第二种是可以修改用新关键字 __block 修饰的变量。__block关键字一个Block的内部是可以引用自身作用域外的变量的,包括static变量,extern变量或自由变量(定义一个变量的时候,如果不加存储修饰符,默认情 阅读全文
posted @ 2012-12-13 10:12 hhhker 阅读(4338) 评论(0) 推荐(0) 编辑
摘要:@synthesize 可以不用再写了如果在.h文件里有<pre class="brush:objc; toolbar: true; auto-links: false;">@propery NSObject * aProperty</pre>那么可以认为 编译器会类似在.m文件里生成<pre class="brush:objc; toolbar: true; auto-links: false;">@synthesize aProperty = _aProperty</pre>如果上面的都不认识 就可以认 阅读全文
posted @ 2012-12-12 10:22 hhhker 阅读(1298) 评论(0) 推荐(0) 编辑
摘要:BlockApple 在C, Objective-C, C++加上Block這個延申用法。目前只有Mac 10.6 和iOS 4有支援。Block是由一堆可執行的程式組成,也可以稱做沒有名字的Function (Anonymous function)。如果是Mac 10.6 或 iOS 4.0 之前的平台可以利用 http://code.google.com/p/plblocks/ 這個project得以支援Block語法。Apple有一個叫做GCD(Grand Central Dispach)的新功能,用在同步處理(concurrency)的環境下有更好的效率。Block語法產生的動機就是來 阅读全文
posted @ 2012-12-11 17:30 hhhker 阅读(229) 评论(0) 推荐(0) 编辑
摘要:http://www.tongwenguan.com/ 同文馆 阅读全文
posted @ 2012-12-11 15:48 hhhker 阅读(170) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。
posted @ 2012-12-11 15:31 hhhker 阅读(1) 评论(0) 推荐(0) 编辑
摘要:概述:都是以[KVC]key-Value Coding 为基础Key-Value Coding(KVC)实现分析KVC运用了一个isa-swizzling技术。isa-swizzling就是类型混合指针机制。KVC主要通过isa- swizzling,来实现其内部查找定位的。isa指针,如其名称所指,(就是is a kind of的意思),指向维护分发表的对象的类。该分发表实际上包含了指向实现类中的方法的指针,和其它数据。比如说如下的一行KVC的代码:[site setValue:@"sitename" forKey:@"name"];就会被编译器处理成 阅读全文
posted @ 2012-12-10 15:55 hhhker 阅读(427) 评论(0) 推荐(0) 编辑
摘要:http://www.dreamingwish.com/dream-2012/ios-multi-threaded-programming-guide-directory.html 阅读全文
posted @ 2012-12-07 15:00 hhhker 阅读(193) 评论(0) 推荐(0) 编辑
摘要:Run LoopsRun loops是线程相关的的基础框架的一部分。一个run loop就是一个事件处理的循环,用来不停的调度工作以及处理输入事件。使用run loop的目的是让你的线程在有工作的时候忙于工作,而没工作的时候处于休眠状态。Run loop的管理并不完全自动的。你仍然需要设计你的线程代码在合适的时候启动run loop并正确响应输入事件。Cocoa和Core Fundation都提供了run loop objects来帮助配置和管理你线程的run loop。你的应用程序不需要显式的创建这些对象(run loop objects);每个线程,包括程序的主线程都有与之对应的run l 阅读全文
posted @ 2012-12-07 14:56 hhhker 阅读(5810) 评论(1) 推荐(4) 编辑
摘要:今天突然才之间才意识到NSTimer这样的运行方式,是在多线程中实现的循环还是在主线程中去实现的呢。当然不可能是在主线程中的while那么简单,那样什么都干不了,简单看了下NSTimer是以同步方式运行的。时间到了,消息发出后,ontimer的函数是在主线程上调用的。我们会经常看到这样的代码:- (IBAction)start:(id)sender{pageStillLoading = YES;[NSThread detachNewThreadSelector:@selector(loadPageInBackground:)toTarget:self withObject:nil];[prog 阅读全文
posted @ 2012-12-07 13:29 hhhker 阅读(21249) 评论(6) 推荐(0) 编辑
摘要:经常会遇到这样一种情况。在iframe里嵌入另外一个页面时。如果iframe载入的页面响应较快,或许我们感觉不到页面载入的不同步,但试想,如果一个需要内嵌到iframe 里的页面的响应很慢,这里会出现一种什么现象呢?这时将会出现所有页面已经载入完成,但在iframe元素处,将会出现空白,直到内嵌页面完成载入时,该 空白处才会显示新载入的页面。可想而知,一个页面如果长时间的空白,对于浏览者来说将意味着什么。如果在内嵌页面未载入完成时,给出一种加载提示信息。如:“页面加载中”之类的,我想这对浏览页面用户来讲,将不再是煎熬,更是一种视觉上的享受。为了实现这样的效果,一般会采用如下原理处理。· 阅读全文
posted @ 2012-12-04 17:10 hhhker 阅读(1486) 评论(0) 推荐(0) 编辑
摘要:关于:excel和word 预览 请看我的博文:excel和word 在线预览 详细配置及代码使用Adobe 组件 在本机vs中调试成功发布到iis中 在代码中涉及到 剪贴板的地方 会不成功 莫名其妙的没有数据 也不报错 设置iis权限 、com组件权限+各种搞 均无果..... -_-! 很是郁闷最终放弃改用 Ghostscript须安装 gs861w32.exe (高版本 貌似 还有问题......)在安装目录 bin 下 找到gsdll32.dll下在 dllitextsharp.dllPDFView.dll把三个dll放入 项目dll(新建)文件夹中引入itextsharp.dllPD 阅读全文
posted @ 2012-12-04 14:36 hhhker 阅读(6194) 评论(7) 推荐(2) 编辑