1.苹果开发文档概要:
整个文档界面有左侧的侧栏和右面的内容区域构成。左面的侧栏可以选择不同的文档库,一般来说有一组不同版本的IOS文
档库、一组不同版本的OSX文档库,以及一个Xcode文档库。
2.NSnumber的用法:
NSnumber的父类是NSValue,
NSNumber *intNumber = [NSNumber numberWithInt:number];
//还原成基本数据类型
int month = [intNumber intvalue];
3.初识block
Block是iOS在4.0之后新增的程序语法,在使用block时,我们首先要^这个符号来定义这个block这个变量,而且要在blo
ck的最后面加上;以表示这是一个完整的语句。
BLock 提供我们一种能够将函数程式代码嵌在一般陈述句的方法。
Block与函数的相似性:可以保存代码 有返回值 有形参 调用方法一样
下面就是定义一个block int(^myBlock)(int) = ^(int num){return num;};
下面解释一下这个语句的意思:
首先我们定义一个myBlock的变量,用^符号来说明这是一个block的变量 这个叫脱字符,是块的语法标记。
加上()表示这是block的完整定义
最前面的int表示这个block类型是一个返回值为整形的(int)的block.
后面的(int)表示它有一个参数,参数的类型是整形,这个变量的名可以不写。
^(int num)表示这个参数的名字叫做num;
{}后面的就是block的内容。
int(^myBlock)(int)这样写得话感觉很麻烦,所以我们可以宏定义在开头:typedef int(^myblock)(int);
然后在下面就可以写成 myblock num = ^(int num){return num;};
如果你想修改block里面的局部变量的值,
直接修改是不可以的,前面必须加上__block 例如修改上面的num __block int num = 10;
但全局变量却可以直接修改。
3.应用block对数组进行排序
NSArray *arr = [NSArray arrayWithObjects:@"a10",@"a32",@"a89",@"a21",nil];
//首先是apple自带的方法进行排序
NSArray *arr1 - [arr sortedArrayUsingSelector:@selector(compare:)];
//将这个方法封装成block块
NSArray *temp = [arr sortedArrayUSingComparator:^NSComparsionResult(NSString obj1,NSString obj2)]
{
if([obj1 compare: obj2] == NSOrderedDescending)
{
return NSOrderedDescenfing;
}
else if([obj1 compare: obj2] == NSOrderedAscending)
{
return NSOrdenedAscending;
}
else
{
return NSOrderedSame;
}
}
//这个方法也可以,将block分开写:
NSComparator sortBlock = ^(id string1, id string2)
{
return [string1 compare:string2];
};
NSArray *sortArray = [stringArray sortedArrayUsingComparator:sortBlock];
NSLog(@"sortArray:%@", sortArray);
转载于:https://my.oschina.net/u/2322034/blog/402383