block
1.定义一个block
void (^block1)(NSString *str) = ^void(NSString *str){
NSLog(@"%@",str);
};
block1(@"long");
2.block作为参数传入函数中
int resultValue = resultOfTwoNumber(3, 5, ^int(int num1, int num2) {
return num1 * num2;
});
NSLog(@"%d",resultValue);
3.block实现排序
NSMutableArray *sortArr1 = [NSMutableArray arrayWithObjects:@4,@5,@12,@10,@18, nil];
[sortArr1 sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
NSNumber *number1 = obj1;
NSNumber *number2 = obj2;
return [number1 compare:number2];
}];
NSLog(@"%@",sortArr1);
NSMutableArray *sortArr2 = [NSMutableArray arrayWithObjects:@"4",@"5",@"12",@"10",@"18", nil];
[sortArr2 sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
NSString *sortString1 = obj1;
int a = [sortString1 intValue];
NSNumber *number3 = [NSNumber numberWithInt:a];
NSString *sortString2 = obj2;
int b = [sortString2 intValue];
NSNumber *number4 = [NSNumber numberWithInt:b];
return [number3 compare:number4];
}];
NSLog(@"%@",sortArr2);
字符串不能直接转换成NSNumber
NSNumber
能直接转换成字符串 stringValue