黑马程序员-----Foundation框架续(一)

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

一些特殊类
1、NSStringEncoding
编码,一般使用NSUTF8StringEncoding,基本实现国际化,起码识别中文。
2、NSError
错误,通常使用NSError**,nil
要记录错误,通常使用如下
定义error:
3、NSError *error;
获取error:
在需要记录错误的地方,传入&error,可以理解为error是一个存放错误信息的字符串;
4、NSURL
OC的资源文件
组成:协议头//资源路径
协议头:http:,ftp:,file,等
5、NSComparisonResualt
一个枚举类型成员是NSOderedAscending,NSOderedDescending,NSOderedSame;
6、NSNotFound
7、迭代器NSEnumerator及相关方法使用
1>相关方法


//数组相关方法
- (void)enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL  *stop){};//Block方法遍历数组元素
- (NSEnumerator *)objectEnumerator;//由数组对象调用,获得数组迭代器(就是遍历器)
- (NSEnumerator *)reverseObjectEnumerator;//由数组对象调用,获得数组的反向迭代器(反向遍历器)
- (id)nextObject;//下一个迭代器元素
//字典相关方法
- (NSEnumerator *)keyEnumerator;//由字典对象调用,获得字典键key的迭代器
- (NSEnumerator *)objectEnumerator;//由字典对象调用,获得字典值value迭代器
- (id)nextObject;//下一个迭代器元素
2>遍历数组(常用Block)
①使用快速遍历数组
for(id obj in anarray)//其中的obj就是数组元素
②使用最常用的方法Block遍历数组
- (void)enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL  *stop){};//Block方法遍历数组元素
③使用迭代器遍历数组
a、首先获得迭代器objectEnumerator;
b、遍历每个元素nextObject;
eg:
NSEnumerator *enumerator = [anarray objectEnumerator];//获得迭代器
id obj = nil;
while(obj = [enumerator nextObject]) //遍历数组
{
NSLog(@"obj = %@",obj);
}
3>遍历字典(常用Block)
①使用快速遍历字典
for(id key in dict)//快速遍历字典的所有key
②使用Block
- (void)enumerateKeysAndObjects:^(id key, id obj, BOOL *stop){};
③使用迭代器
a、首先获得迭代器objectEnumerator/keyEnumerator;
b、遍历每个元素nextObject;
- (void)enumerateKeysAndObjectsUsingBlock:^(id key, id  obj, BOOL *stop){};
8、排序描述器NSSortDescriptor及相关方法
1>相关方法
//数组相关方法
- (NSArray *)sortedArrayUsingSelector:(SEL)//通过SEL排序,SEL可自定义
- (NSComparisonResult)compare:(id)obj;//字符串比较
自定义排序方法,返回值必须是NSComparisonResult;最好以compare开头
- (NSArray *)sortedArrayUsingComparator:^(NSComparisonResult)(id obj1, id obj2){};//利用排序比较器Comparator排序,就是个Block
- (NSSortDescription *)sortDescriptorWithKey:(id)aKey ascending:YES;//排序描述器生成,这里的aKey应该是@property后面的名字,而不是带有下划线的成员变量名
2>数组排序方法
①自定义排序方法
- (NSArray *)sortedArrayUsingSelector:(SEL)//通过SEL排序,SEL可自定义
- (NSComparisonResult)compare:(id)obj;//字符串比较
自定义排序方法,返回值必须是NSComparisonResult;最好以compare开头
②排序描述器顺序
a、定义排序描述器
b、将排序描述器装入描述器数组
c、排序
eg:对array数组排序
//定义排序描述器
NSSortDescriptor *lastName = [NSSortDescriptor sortDescriptorWithKey:@"lastname" ascending:YES];
NSSortDescripttor *firstName = [NSSortDescriptor sortDescriptorWithKey:@"firstname" ascending:YES];
//装入排序描述器数组
NSArray *arrayDesc = [NSArray arrayWithObjects:lastName, firstName,nil];
NSArray *arraySorted = [array sortedArrayUsingDescription:arrayDesc];


---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------详细请查看:www.itheima.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值