iPhone开发 - ObjectC基础
Red__King
太多要说的,不够用
展开
-
isKindOfClass和isMemberOfClass的区别
isKindOfClass和isMemberOfClass 都是NSObject的比较Class的方法但两个有很大区别:isKindOfClass来确定一个对象是否是一个类的成员,或者是派生自该类的成员isMemberOfClass只能确定一个对象是否是当前类的成员例如:我们已经成NSObject派生了自己的类,isMemberOfClass不能检测任何的类都是基于NSObject原创 2012-11-10 22:38:56 · 11644 阅读 · 0 评论 -
iOS 声明属性关键字讲解
atomic: 原子操作(原子性是指事务的一个完整操作,操作成功就提交,反之就回滚. 原子操作就是指具有原子性的操作)在objective-c 属性设置里面默认的就是atomic,意思就是setter/getter函数是一个原子操作,如果多线程同时调用setter时,不会出现某一个线程执行完setter所有语句之前,另一个线程就开始执行setter,相当于函数头尾加了锁. 这样的话原创 2012-12-22 00:16:11 · 318 阅读 · 0 评论 -
关于CLASS , SEL, IMP的说明
cocoa当中的函数调用,是一种以消息的方式进行的函数调用,这一点与C++,java是有很大差别的。因此该类型的理解,会涉及到三个重要的概念,class,sel,IMP。class每个NSObject的第一个成员变量都是class类型的成员,isa,这个isa的对象可以访问到本类的父类,也可以访问到本类的所有方法的列表。SEL原创 2012-12-15 22:23:05 · 330 阅读 · 0 评论 -
Objective-C的单例模式(singleton)
如果你准备写一个类,希望保证只有一个实例存在,同时可以得到这个特定实例提供服务的入口,那么可以使用单态设计模式。单态模式在Java、C++中很常用,在Cocoa里,也可以实现。但是,Objective-C的单例模式绝对和你所想象不一样,他的写法和你所见过的所有语言的写法都不一样。 官方建议 由于自己设计单态模式存在一定风险,主要是考虑到可能在原创 2012-12-15 00:43:48 · 363 阅读 · 0 评论 -
IOS开发之----KVC的使用
除了一般的赋值和取值的方法,我们还可以用Key-Value-Coding(KVC)键值编码来访问你要存取的类的属性。下图来自苹果官网:如何使用KVC存取对象属性呢?看个示例1、使用KVC定义一个Student类,继承于NSObject。.h文件#import @interface S转载 2012-11-25 11:27:30 · 366 阅读 · 0 评论 -
NSNotificationCenter(观察者模式) 的使用
NSNotificationCenter(观察者模式) 的使用1,定义一个方法-(IBACtion)shuchu{ }2,对象注册,并附带信息[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(shuchu) name:@"Method" object:nil]3,发送通知信息[[原创 2012-11-05 12:57:54 · 636 阅读 · 0 评论 -
NSArray排序方式汇总
1. Either you implement a compare-method for your object:- (NSComparisonResult)compare:(Person *)otherObject { return [self.birthDate compare:otherObject.birthDate]; } NSArray *sortedArray原创 2012-11-13 18:07:10 · 364 阅读 · 0 评论 -
WWDC2012:Objective-C的新特性
Objective-C在计算机编程语言中有悠久的历史,80年代初Brad Cox和Tom Love发明了Objective-C,1988年乔布斯的Next公司获得了这门编程语言语言的授权,并开发出了Objective-C的语言库和NEXTSTEP的开发环境。NextStep是以Mach和BSD为基础,Objective-C是其语言和运行库。乔布斯回归苹果,NextStep成了Max OS X的转载 2012-11-24 09:35:19 · 380 阅读 · 0 评论 -
Objective-C——消息、Category和Protocol
面向对象永远是个可以吐槽的话题,从开始提出到推崇备至,到充满质疑,一路走来让人唏嘘不已。面向对象的思想可谓历史悠久,20世纪70年代的Smalltalk可以说是面向对象语言的经典,直到今天我们依然将这门语言视为面向对象语言的基础。面向对象是大部分编程语言的基本特性,像C++、Java、Objective-C这样的静态语言,Ruby、Python这样的动态语言都是面向对象的语言。但是如何编写转载 2012-11-24 09:36:05 · 366 阅读 · 0 评论 -
iOS 声明属性关键字讲解
atomic: 原子操作(原子性是指事务的一个完整操作,操作成功就提交,反之就回滚. 原子操作就是指具有原子性的操作)在objective-c 属性设置里面默认的就是atomic,意思就是setter/getter函数是一个原子操作,如果多线程同时调用setter时,不会出现某一个线程执行完setter所有语句之前,另一个线程就开始执行setter,相当于函数头尾加了锁. 这样的话原创 2012-11-24 09:44:09 · 384 阅读 · 0 评论 -
Objective-C 之类目(category)的应用
类目(Category)Category提供了一种比继承(inheritance)更为简洁的方法来对class进行扩展,我们可以为任何已经存在的class添加方法(不包括数据成员)却不需要访问该class的实现文件。新添加的方法和原有的方法具有同等的地位,可以访问class的数据成员,并且完全植入到class的继承体系之中,子类同样会继承新添加的方法。利用category对类进行扩转载 2012-11-24 13:45:52 · 332 阅读 · 0 评论 -
ObjC: 使用KVC
KVC是什么?即:Key-Value Coding,直译是:键值编码。还是没明白什么意思?先看看下面的代码。Book类的代码,头文件:#import @interface Book : NSObject { NSString *name;}@end 实现文件:#import "Book.h"@implementation转载 2012-11-27 08:43:01 · 281 阅读 · 0 评论 -
IOS开发之----KVO的使用
简介:上篇我们讲到了KVC,这篇我们学习KVO,全名为:Key Value Observing,直译为:基于键值的观察者。那它有什么用呢?KVO主要用于视图交互方面,比如界面的某些数据变化了,界面的显示也跟着需要变化,那就要建立数据和界面的关联。ObjC中提供的KVO就是解决这种问题的。以下用显示页面观察学生的课程名称变化的例子来说明KVO的使用。学生类命名为:St转载 2012-11-25 11:32:01 · 307 阅读 · 0 评论 -
iOS中定时器NSTimer的使用
1、初始化+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTim原创 2012-11-12 22:05:55 · 450 阅读 · 0 评论 -
iphone开发之AppDelegate中的方法和作用
协议中定义的这些需要实现的方法的作用:1、- (void)applicationWillResignActive:(UIApplication *)application说明:当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话了2、- (void)applicationDidBecomeActive:(UIApplication *)application原创 2012-11-05 13:02:01 · 481 阅读 · 0 评论 -
Cocoa对象 根类
http://mobile.51cto.com/iphone-274229.htmCocoa对象 根类是本文要介绍的内容,仅凭Objective-C语言和运行环境并不足以构造哪怕是最简单的面向对象的程序,至少是不容易的。还缺少一些东西:即所有对象公有的基本行为和接口的定义。根类正是提供了这些定义。之所以叫根类,是因为它位于整个类层次(这里是指Cocoa的类层次)的根上。根类不从其它类继转载 2013-01-09 13:14:32 · 367 阅读 · 0 评论