object c mysql_Object-C学习笔记(三)

住院好几天了。昨天刚安上无线网卡,写了半天笔记结果破输入法死机白忙活了,还得重搞。

NSArray 是Cocoa的一个类,用于存放对象,这个类不可以直接存放C中数据类型的数据,需要转换成Object-C的对象才可以。

创建一个NSArray对象的方法有很多,这里先说一个比较简单的方法。

+ (NSArray) arrayWithObjects:(id) obj, ...

count 用于获取NSArray中的对象个数

-(unsigned int) count;

objectAtIndex 用于根据索引获取相应的对象,注意如果访问了不存在的索引,不会像PHP一样最多出现个Notice,将会导致程序崩溃,其实这是个好事,因为他会让你及时的修正,避免由于使用非法索引而导致出现难以调试的Bug。

- (id) objectAtIndex:(unsigned int)index;

componentsJoinedByString 这个跟PHP中的implode类似,用于根据一个字符串来将数组连接成一个新的字符串。

- (NSString *) componentsJoinedByString:(NSString *)dec;

componentsSeparatedByString 这个跟PHP中的explode类似,用于根据一个字符串来拆分另外一个字符串,并将拆分后的结果存放在NSArray中。

- (NSArray *) componentsSeparatedByString:(NSString *)dec;

NSMuTableArray 跟NSString一样NSArray也是不可变对象,一旦创建后不可以进行增删操作,需要NSMuTableArray 来操作

NSMuTableArray 的创建方式也很简单

+(id) arrayWithCapacity:(unsigned int)numItems;

addObjects 用于在数组结尾增加新的对象

+ (void) addObject:(id) anObject;

removeObjectAtIndex 根据索引删除数组中的对象

- (void) removeObjectAtIndex:(unsigned int) index;

以上是数组的简单操作,这里介绍下几种简单的遍历方式。

第一种 使用for循环加 count 方法遍历

int i = 0;

for(i = 0; i < [array count]; i++)

{

[array objectAtIndex:i]

} 第二种 使用for in方式遍历

for(NSString *str in array)

{

操作

} 第三种 使用枚举方式遍历

NSEnumerator *enumer;

emumer = [array objectEnumerator];

NSString *str;

while(str = [enumer nextObject])

{

操作

} 要注意的是 使用这种方式遍历 遍历过程中不可以对数组进行增删操作 否则将会出现一些未知的错误

NSDictionary Object-C 允许你通过这个类来定义字典数据。

+ (id) dictionaryWithObjectsAndKeys:

(id) firstObject,...;

NSDictionary *dicts;

dicts = [NSDictionary dictionaryWithObjectsAndKeys:

nameObj, @"name",

oldObj, @"old",

sexOBj, @"sex"

]; objectForKey 根据字典的key来获取对象

- (id) objectForKey: (id) akey;

使用NSMuTableDictionary 来处理创建一个动态的字典

+ (id) dictionaryWithCapacity: (unsigned int)numItems; setObject 用于对字典添加一条Key值,如果key存在则覆盖

-(void) setObject:(id) anObject

forKey:(id) aKey; removeObjectForKey 删除字典中的一个key值

- (void) removeObjectForKey:(id) akey;

像之前说的一样,NSArray和NSDictionary都只能存储对象,C类型的数据是无法直接存储的,所以如果需要存储这些数据的话必须要转换成对象后才可以,下面介绍一些转换方法。

NSNumber类封装了一些方法用于将一些数值类型转换成对象。

+(NSNumber *) numberWithChar:(char) value;

+(NSNumber *) numberWithInt:(int) value;

+(NSNumber *) numberWithFloat:(float) value;

+(NSNumber *) numberWithBool:(BOOL) value; 从对象中获取这些数据的值也很简单

- (int) intValue;

- (char) charValue;

- (float) floatValue;

- (BOOL) boolValue;

- (NSString *) stringValue;

NSValue

NSNumber 就是 NSValue的一个子类,使用NSValue可以包装任意类型的数据,使其可以放在数组或者字典中。

+ (NSValue *) valueWithBytes: (const void *)value

objCtype: (const char *)type; 第一个参数使要包装的数据地址,使用C的取址符获取,第二个参数用于描述改数据的字符串,主要描述了数据类型和大小。使用@encode可以使用指令获取,例如 @encode(NSRect)。

getValue  使用getValue方法可以获取NSValue的实际值

- (void *) getValue: (void *)value; 返回的数据将存放在第一个参数所指的地址中。

Cocoa还提供了一些比较便捷的方法用于处理常用的结构

+ (NSValue *) valueWithPoint: (NSPoint) point;

+ (NSValue *) valueWithSize: (NSSize) size;

+ (NSValue *) valueWithRect: (NSRect) rect;

- (NSPoint) pointValue;

- (NSSize) sizeValue;

- (NSRect) rectValue;

NSNull 这个数据类型用于表示一个 为空的数据(nil) 类似PHP的 NULL,表示什么都没有,使用null方法可以创建这个对象。

+ (NSNull *)null; NSNull的值总是一样的 所以 可以直接用 == 进行比较。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值