iOS开发学习第十九课——匿名函数 Block
来源:互联网 发布:杭州最帅交警网络走红 编辑:程序博客网 时间:2024/06/03 19:23
//Block的定义:Block也是一个函数,称为一个语法块(实现某个特定功能),只不过Block是一个比较特殊的函数,没有函数名称的函数,又叫做匿名函数
格式:
返回值类型 (^Block变量名称) (参数列表) = 返回值类型(可以省略) ^(参数列表(一定要有参数名称))
{
#import
#import "Person.h"
//Block重定义
typedef int (^newBlock)(int ,int);
typedef int (^newBlock)(int ,int);
int count = 18;//定义一个全局变量,不管在 main函数内部还是在外部都可以访问和使用
int main(int argc, const char * argv[]) {
@autoreleasepool {
//用Block实现求两个数之间的最大值
//
//
//
//
//
//
**********************************************
Person.h
#import
@interface Person : NSObject
{
NSString *_Name;
NSString *_Sex;
NSInteger _Age;
CGFloat _Height;
}
//setter getter
- (void)setName:(NSString *)name;
- (NSString *)Name;
- (void)setSex:(NSString *)sex;
- (NSString *)Sex;
- (void)setAge:(NSInteger)age;
- (NSInteger)Age;
- (void)setHeight:(CGFloat)height;
- (CGFloat)height;
-(id)initWithName:(NSString *)name
Sex:( NSString *)sex
Age:( NSInteger)age
Height:( CGFloat)height;
//便利构造器
+(id)PersonWithName:(NSString *)name
Sex:( NSString *)sex
Age:( NSInteger)age
Height:( CGFloat)height;
//输出信息
-(void)sayHi;
{
}
//setter getter
- (void)setName:(NSString *)name;
- (NSString *)Name;
- (void)setSex:(NSString *)sex;
- (NSString *)Sex;
- (void)setAge:(NSInteger)age;
- (NSInteger)Age;
- (void)setHeight:(CGFloat)height;
- (CGFloat)height;
-(id)initWithName:(NSString *)name
//便利构造器
+(id)PersonWithName:(NSString *)name
//输出信息
-(void)sayHi;
@end
**********************************************
Person.m
#import "Person.h"
@implementation Person
- (void)setName:(NSString *)name{
_Name = name;
}
- (NSString *)Name{
return _Name;
}
- (void)setSex:(NSString *)sex{
_Sex = sex;
}
- (NSString *)Sex{
return _Sex;
}
- (void)setAge:(NSInteger)age{
_Age = age;
}
- (NSInteger)Age{
return _Age;
}
- (void)setHeight:(CGFloat)height{
_Height = height;
}
- (CGFloat)height{
return _Height;
}
-(id)initWithName:(NSString *)name
Sex:( NSString *)sex
Age:( NSInteger)age
Height:( CGFloat)height{
self = [super init];
if (self) {
_Name = name;
_Sex = sex;
_Age = age;
_Height = height;
}
return self;
- (void)setName:(NSString *)name{
}
- (NSString *)Name{
}
- (void)setSex:(NSString *)sex{
}
- (NSString *)Sex{
}
- (void)setAge:(NSInteger)age{
}
- (NSInteger)Age{
}
- (void)setHeight:(CGFloat)height{
}
- (CGFloat)height{
}
-(id)initWithName:(NSString *)name
}
//便利构造器
+(id)PersonWithName:(NSString *)name
}
//输出信息
-(void)sayHi{
}
@end
**********************************************
main.m
//Block排序
//创建几个Person对象
Person *per1 = [Person PersonWithName:@"DouDou" Sex:@"f" Age:23Height:163.8];
Person *per2 = [Person PersonWithName:@"XiaoLong" Sex:@"m" Age:18Height:178.5];
Person *per3 = [Person PersonWithName:@"MingMing" Sex:@"m" Age:31Height:188.2];
Person *per4 = [Person PersonWithName:@"MaoMao" Sex:@"m" Age:29Height:176.3];
//定义一个可变数组,将对象存储到数组当中
NSMutableArray *perMutArr = [@[per1,per2,per3,per4] mutableCopy];
//按照姓名排序
[perMutArr sortUsingComparator:^NSComparisonResult(Person *obj1,Person *obj2) {
//比较姓名的大小
NSComparisonResult result = [[obj1 Name] compare:[obj2 Name]];
//如果姓名相同,则按照年龄排序
if (result == NSOrderedSame) {
//按照年龄排序
result = [@([obj1 Age]) compare:@([obj2 Age])];
}
return result;
}];
NSLog(@"按照姓名排序好的Person对象为:");
//遍历数组,输出每个对象的信息
for (id obj in perMutArr) {
[obj sayHi];
}
//按照身高排序
[perMutArr sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
return [@([obj1 height]) compare:@([obj2 height])];
}];
//遍历数组,输出每个对象的信息
for (id obj in perMutArr) {
[obj sayHi];
}
0 0
- iOS开发学习第十九课——匿名函数 Block
- iOS开发 多视角抛析匿名函数—— Block
- IOS学习——BLOCK
- iOS开发block的学习
- iOS开发 ——Block使用
- iOS开发——block传值
- python学习——匿名函数
- JQuery源码学习——匿名函数
- 第十九课:自定义函数
- 原创-Block匿名函数简介
- IOS—OC学习六—block
- iOS学习——block深入浅出
- iOS 学习之——block
- IOS学习笔记24—block
- ios学习路线—Objective-C(Block)
- 黑马程序员——零基础学习iOS开发——12 Object-C block、protocol
- 【IOS 开发学习总结-OC-7.6-★】objective-c ——块(Block)
- iOS开发-由浅至深学习block
- 一例千万级pv高性能高并发网站架构
- Mac截图功能
- 游戏感:虚拟感觉的游戏设计师指南——第七章 响应的测量方法
- 设计模式之State模式(笔记)
- iOS应用跳转
- iOS开发学习第十九课——匿名函数 Block
- c++中string类的详解
- 用py2exe打包成一个exe文件
- golang调用动态库
- 游戏感:虚拟感觉的游戏设计师指南——第八章 环境的测量方法
- 文本替换sed+字段处理cut,join+awk重新编排字段
- 范式
- 排列组合 包含求集合笛卡尔积
- linux设备模型 底层