《Objective-C基础教程》学习笔记第八章

1. Fundation kit中一些有用的数据类型:常用结构体:NSRange, NSPoint, NSSize, NSRect; 常用类: NSString, NSMutableString, NSArray, NSMutableArray, NSDictionary, NSMutableDictionary, NSNumber, NSValue, NSEnumerator

2. NSString代表不可变的字串,对应Java中的String。NSString的一个类方法stringWithFormat可以按照指定format创建一个NSString;判断两个字串是否相等可以用isEqualToString,返回值是BOOL(YES或NO);比较两个字串可以用函数compare,返回值是NSComparisonResult(Enum类型,包括NSOrderedAscending, NSOrderedSame, NSOrderedDescending),可以在compare时加options参数指定比较方式(NSCaseInsensitiveSearch, NSLiteralSearch, NSNumericSearch).

3. NSArray创建的是不可变对象的数组,不能在创建后添加或者删除任何元素,但是数组中包含的对象是可变的,只是数组对象本身不可变。NSArray只能存储Objective-C的对象,不能存储C语言中的基本数据类型(int, float, enum, struct等以及nil),如果需要存储这些类型的数据,需要用NSValue或者NSNumber做包装之后再放入。

4. NSMutableString, NSMutableArray和NSMutableDictionary分别对应可变字串,数组和字典。

5. Enumerator对应Java中的iterator,用来遍历访问NSString或者NSDictionary等集合中的数据。

6. Objective-C中的装箱(boxing)和取消装箱(unBoxing)。Cocoa提供了NSNumber类来包装基本数据类型,NSNumber类方法(NSNumber *)numberWithChar: (char) value; (NSNumber *)numberWithInt: (int) value;  (NSNumber *)numberWithFloat: (float) value; (NSNumber *)numberWithBool: (BOOL) value;用来完成装箱;(char)charValue; (int)intValue; (float)floatValue; (BOOL)boolValue; (NSString *)stringValue;

7. NSValue可以用来包装任意值,并且可以读取出原值,因此可以用NSValue将结构放入NSArray和NSDictionary中。 创建新的NSValue方法是:(NSValue*) valueWithBytes: (const void *) value objCType:(const char *) type;  提取数值的方式是:(void) getValue: (void *). Cocoa提供了将常用struct型数据转换为NSValue的便捷方法,比如+(NSValue *) valueWithPoint: (NSPoint) point;   +(NSValue *) valueWithSize: (NSSize) size;     +(NSValue *) valueWithRect: (NSRect) rect; 用来将常用struct转换成NSValue,-(NSPoint) pointValue;  -(NSSize) sizeValue;  -(NSRect) rectValue;用来逆向转换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值