随笔分类 -  object-c iOS

上一页 1 ··· 4 5 6 7 8 9 10 下一页
摘要: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) 编辑
只有注册用户登录后才能阅读该文。
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) 编辑
摘要:贴上资源http://husbandman.diandian.com/post/2012-08-17/40036035008http://www.cnblogs.com/kesalin/archive/2012/01/30/objc_create_class.html 阅读全文
posted @ 2012-11-09 10:23 hhhker 阅读(218) 评论(0) 推荐(0) 编辑
摘要:Objective-C 也是面向对象的语言,那么,首先需要知道的就是什么是class。C++ 的class相对Objective-C 中的class,就简单明了很多了。C++ 中class简单的说,就是一个大的struct, 绝大部分的class可以在编译时决定好class的布局(通过虚继承来的class成员变量只能动态确定)。当然,最关键的是,你不可能在运行时创建一个class,因为所有的class在运行之前已经确定下来,并保存在二进制文件中。但是,Objective-C 确不同,Objective-C 可以在运行中创建class,修改class等等。那么,改如何定义Objective-C 阅读全文
posted @ 2012-11-09 09:34 hhhker 阅读(319) 评论(0) 推荐(0) 编辑
摘要:Objective-C获取消息工作机制是本文要介绍的内容,看namemangling的时候,也讲到了Objective-C的name mangling,于是又重新读了一下Objective-C2.0programming Language以及Objective-C 2.0RuntimeReference里的相关内容,自己归纳一下。 MyClass.h @interfaceMyClass:NSObject { } @end MyClass.m #import< span>usr/include/objc/runtime.h>#import“MyClass.h” voidmyCl 阅读全文
posted @ 2012-11-08 16:12 hhhker 阅读(1248) 评论(0) 推荐(0) 编辑
摘要:提到了resolveInstanceMethod,这个方法不仅在这里用,还用来实现消息的转发。消息的转发就是向对象发送一个它本身并没有实现的消息,在运行时确定它实际产生的行为。举个例子来说,一个Person对象,在运行时根据实际情况,决定是否响应fly这样的方法。如果条件具备,则fly被响应。否则,则不具备这样的方法。类似于AoP的做法。要实现消息转发,需要覆盖三个方法:1, resolveInstanceMethod(可选),这个方法为你提供了一个机会,在消息被发现本身没有在类中定义时你可以通过class_addMethod将它添加进去。如果你不这样做,不管你最终返回YES还是NO,程序都会 阅读全文
posted @ 2012-11-08 14:35 hhhker 阅读(447) 评论(0) 推荐(1) 编辑
摘要:Objective-C 2.0 的运行时环境叫做Morden Runtime,iOS 和Mac OS X 64-bit 的程序都运行在这个环境,也就是说Mac OS X 32-bit 的程序运行在旧的Objective-C 1.0 的运行时环境LegacyRuntime,这里我们只讲解Morden Runtime。同运行时交互主要在三个不同的地方,分别是A.Objective-C 源码(譬如:你定义的Category中的新方法会在运行时自动添加到原始类)、B.NSObject 的方法(isMemberClassOf 等动态判定的方法)、C.运行时函数。由于前两者在第一篇文档中讲解过,这里我们讲 阅读全文
posted @ 2012-11-08 11:15 hhhker 阅读(4286) 评论(0) 推荐(1) 编辑
摘要:iOS内存暴增问题追查与使用陷阱(2011-11-29 08:11:57)标签:autorelease,内存暴增,内存泄漏分类:编程技术,贴吧技术iOS平台的内存使用引用计数的机制,并且引入了半自动释放机制;这种使用上的多样性,导致开发者在内存使用上非常容易出现内存泄漏和内存莫名的增长情况; 本文会介绍iOS平台的内存使用原则与使用陷阱; 深度剖析autorelease机制;低内存报警后的处理流程;并结合自身实例介绍内存暴增的问题追查记录以及相关工具的使用情况;TAG内存暴增,内存泄漏,autorelease;内存报警;iOS平台内存常见问题作为iOS平台的开发者,是否曾经为内存问题而苦恼过? 阅读全文
posted @ 2012-10-26 14:08 hhhker 阅读(5039) 评论(0) 推荐(1) 编辑
摘要:作者: sqw0312 1 随机数的使用 头文件的引用 #import time.h #import mach/mach_time.h srandom() 的使用 srandom((unsigned)(mach_absolute_time() 0xFFFFFFFF)); 直接使用 random() 来调用随机数 2 在UIImageView 中旋转图作者:sqw03121 随机数的使用头文件的引用#import <time.h>#import <mach/mach_time.h>srandom()的使用srandom((unsigned)(mach_absolute_t 阅读全文
posted @ 2012-10-26 13:40 hhhker 阅读(407) 评论(0) 推荐(0) 编辑
摘要:可以在toolBar上添加任何View。其实它的原理是把你要添加的View先加到UIBarButtonItem里面,最后再把UIBarButtonItem数组一次性放到toolbar的items里面。toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; toolBar.barStyle = UIBarStyleDefault; UIBarButtonItem *titleButton = [[UIBarButtonItem alloc] initWithTitle:title ... 阅读全文
posted @ 2012-10-26 11:13 hhhker 阅读(5586) 评论(0) 推荐(0) 编辑
摘要:开发者论坛和资料站点1.http://www.cocoachina.com/ 我基本把他归为eoe一样常用级别。2.http://www.apple.com.cn/developer/ 这个就不解释了,英语好的可以去掉cn,不过目前我还用的比较少,官方文档和指引3.http://code4app.com/ 提供一些常用的自定义控件等等的源码,还不错4.http://www.devdiv.com/ios.html 感觉好像改版了~~5.http://www.cocoachina.com/iphonedev/toolthain/2011/1109/3480.html cocoa上一个资源索引视频和 阅读全文
posted @ 2012-10-18 15:25 hhhker 阅读(242) 评论(0) 推荐(0) 编辑
摘要:在做IOS开发时,经常用到到plist文件, 那plist文件是什么呢? 它全名是:Property List,属性列表文件,它是一种用来存储串行化后的对象的文件。属性列表文件的扩展名为.plist,因此通常被称为plist文件。文件是xml格式的。Plist文件通常用于储存用户设置,也可以用于存储捆绑的信息我们创建一个项目来学习plist文件的读写。1、创建项目Plistdemo项目创建之后可以找到项目对应的plist文件,打开如下图所示:在编辑器中显示类似与表格的形式,可以在plist上右键,用源码方式打开,就能看到plist文件的xml格式了。2、创建plist文件。按command + 阅读全文
posted @ 2012-10-18 14:20 hhhker 阅读(1702) 评论(0) 推荐(0) 编辑
摘要:目 录引言 1一、安装和登录 2(一) login 2(二) shutdown 2(三) halt 3(四) reboot 3(五) install 4(六) mount 4(七) umount 6(八) chsh 6(九) exit 7(十) last 7(十一) 动手练习 7二、文件处理 9(一) file 9(二) mkdir 9(三) grep 10(四) dd 11(五) find 11(六) mv 13(七) ls 13(八) diff 14(九) cmp 15(十) cat 15(十一) ln 16(十二) 动手练习 16三、系统管理 18(一) df 18(二) top 19( 阅读全文
posted @ 2012-10-17 16:33 hhhker 阅读(58013) 评论(0) 推荐(8) 编辑
摘要:http://kqwd.blog.163.com/blog/static/4122344820117191351263/ 阅读全文
posted @ 2012-10-17 15:41 hhhker 阅读(163) 评论(0) 推荐(0) 编辑
摘要:http://www.codeios.com/thread-1054-1-1.html 阅读全文
posted @ 2012-10-16 17:22 hhhker 阅读(169) 评论(0) 推荐(0) 编辑
摘要:多线程之NSInvocationOperation多线程编程是防止主线程堵塞,增加运行效率等等的最佳方法。而原始的多线程方法存在很多的毛病,包括线程锁死等。在Cocoa中,Apple提供了NSOperation这个类,提供了一个优秀的多线程编程方法。本次介绍NSOperation的子集,简易方法的NSInvocationOperation:@implementation MyCustomClass- (void)launchTaskWithData:(id)data{ //创建一个NSInvocationOperation对象,并初始化到方法 //在这里,selector参数后的值是你想在另外 阅读全文
posted @ 2012-10-12 16:49 hhhker 阅读(5058) 评论(0) 推荐(0) 编辑

上一页 1 ··· 4 5 6 7 8 9 10 下一页