随笔分类 - Objective-C
摘要:http://blog.sina.com.cn/s/blog_a004f38f01013kqj.htmlhttp://www.cocoachina.com/bbs/read.php?tid=73570&fpage=2&page=11布尔值宏定义 真为YES 假为NOObjective-C中的BOOL实际上是一种对带符号的字符类型(signed char)的定义(typedef),它使用8位存储空间,YES定义为1,而NO定义为0(使用#define)。Objective-C并不将BOOL作为仅能保存YES或NO值的真正的布尔类型来处理。编译器将BOOL认作8位二进制数,YES和
阅读全文
摘要:C语言将字符串作为简单地字符数组处理,并且在数组最后添加尾部零字符作为结束标志。而Cocoa中的NSString则有很多内置方法,他们让字符串的处理变得简单很多1. 创建字符串 NSString的stringWithFormat:方法+(id) stringWithFormat:(NSString *) format, ...;//省略号表示这个方法可以接收多个以逗号隔开的其他参数,就像printf()和NSLog()一样 可以用如下方式创建一个新的字符串NSString *height; height=[NSString stringWithFormat: @"Your heigh
阅读全文
摘要:1. 范围的作用第一个结构体是NSRange:typedef struct _NSRange{ unsigned int location; unsigned int length;}NSRange;这个结构体用来表示相关事物的范围,通常是字符串里的字符范围或数组里的元素范围,location字段存放该范围的起始位置,而length字段则是该范围内所含元素的个数。在字符串“Objective-C is a cool language”中,单词cool可以用location为17,length为4的范围来表示。也许由于location字段未被初始化,所以它的值可以是NSNotFound,...
阅读全文
摘要:1. 类拆分成 接口和实现部分接口:类的@interface指令、公共struct定义、enum常量、#define和extern全局变量等 .h实现:@implementation指令、全局变量的定义、私有struct等 .m2. 导入头文件有两种不同的方法: 使用引号导入:#import “Tire.h” 导入的是项目本地的头文件,可以编辑 使用尖括号导入:#import 用来导入系统头文件,属于系统,只读3. 使用跨文件依赖关系 依赖关系是两个实体之间的一种关系。在变成和开发过程中,经常会出现关于依赖关系的问题,依赖关系可以存在于两个类之间,如Slant6类因继承关系而依赖Engi...
阅读全文
摘要:编程中的复合就好像音乐中的作曲一样,讲多个组件组合在一起配合使用,从而得到完整的作品。创作乐曲时,作曲人可能会选择低音管声部和双皇冠声部组成交响乐的二声部。在软件开发中,程序员可能会用一个Pedal(脚踏板)对象和一个Tire(轮胎)对象组合出虚拟的独轮车。在Objective-C中,复合是童工包含作为实例变量的对象指针实现的。因此上述的虚拟独轮车应该拥有一个指向Pedal对象的指针和一个指向Tire对象的指针#import //Pedal@interface Pedal : NSObject@end//tire@interface Tire : NSObject @end @imple...
阅读全文
摘要:1. 不要直接更改由继承得到的实例变量的值,一定要使用方法来更改它们2. 只能继承一个某些语言(例如C++)具有多重继承特性,在这种情况下,一个类可以直接从两个或多个类继承而来。但Objective-C不支持多继承,如果你尝试在Objective-C中使用多继承,编译器将不能正常识别它们,你可以通过Objective-C的其他特性获取多继承的有点,例如分类和协议3. 对于方法的定义,使用空正文或者返回一个虚值都是可以的比如:Shape类的draw方法-(void) draw{} //这样Shape的子类都能实现各自不同的方法4. 创建一个新类时,其对象首先从自身的超类中继承实例变量,然后(可选
阅读全文
摘要:实例化对象时,需要分配内存,然后这些内存被初始化并保存一些有用的默认值,这些值不同于你在获得新分配的内存时得到的随机值。内存分配和初始化完成后,就创建了一个新的对象实例。说明:由于对象的局部变量特定于该对象的实例,因此我们称它们为实例变量,通常简写为ivars.为了创建新对象,我们需要向相应的类发送new消息。该类接受并处理完new消息后,我们就会得到一个可以使用的新对象实例。Objective-C具有一个几号的特性,你可以把类当成对象来向类发送消息,这种便捷的行为不局限于某个特定的对象,而是对全体类都通用。这种消息通常用在创建新对象时,如果需要创建新的circle对象,请求circle类创建
阅读全文
摘要:代码:@implementation Circle-(void) setFillColor: (ShapeColor) c{ fillColor=c;}-(void) setBounds: (ShapeRect) b{ bounds=b;}-(void) draw{ NSLog(@"draw a cifrcle at(%d %d %d %d) in %@",bounds.x,bounds.y,bounds.width,bounds.heihgt,colorName(fillColor));}@end@implemention是一个编译器制定,表明你将为某个类提供代码。类名出
阅读全文
摘要:Objective-C中,调用方法被称为发送消息,通知对象执行某种操作先看一段类声明(接口):@interface Circle : NSObject{ ShapeColor fillColor; ShapeRect bounds;}-(void) draw; //1.-(void) setFillColor: (ShapeColor) fillColor; //2.-(void) setBounds: (ShapeRect) bounds; //3.@end方法声明第1个,前面的短线表明这是Objective-C方法的声明,这是一种区分函数原型与方法声明的方式,函数原型中没有先行短线。短..
阅读全文
摘要:NSLog的格式如下所示:%@ 对象%d, %i 整数%u 无符整形%f 浮点/双字%x, %X 二进制整数%o 八进制整数%zu size_t%p 指针%e 浮点/双字 (科学计算)%g 浮点/双字%s C 字符串%.*s Pascal字符串%c 字符%C unichar%lld 64位长整数(long long)%llu 无符64位长整数%Lf 64位双字参考:http://wangjun.easymorse.com/?p=757例子:http://blog.csdn.net/xiaominghimi/article/details/6570697http://blog.csdn.net/
阅读全文
摘要:1. 布尔类型:存储真值和假值的变量2. C语言拥有布尔数据类型bool,它具有true值和false值,Objective-C提供了类似的类型BOOL,它具有YES只和NO值。3. Objective-C的BOOL类型比C语言的bool类型早诞生十多年,这两种不同的布尔类型可以在同一个程序中共存,但在编写Cocoa代码时要使用BOOLBOOL陷阱4. Objective-C中的BOOL实际上是一种对带符号的字符类型(signed char)的定义(typedef),它使用8位存储空间爱你,YES定义为1,NO定义为0(使用#define)Objective-C并不将BOOL作为仅能保存YES
阅读全文
摘要:先看一段简单的代码:Hello Objective-C.m#import int main(int argc,const char *argv[]){ NSLog(@"Hello, Objective-C!");//输出“Hello, Objective-C!” return (0);}//main1. .m扩展名表示文件还有Objective-C代码,应该由Objective-C编译器处理。2. .c结尾的文件由C编译器处理3. .cpp文件由C++编译器处理4. 在XCode中,所有编译工作全由GCC(GNUCompiler Collection, GNU编译器集合)处
阅读全文
浙公网安备 33010602011771号