iOS开发 - 如何写出漂亮的block

简介: iOS开发 - 如何写出漂亮的block

Block具有快速传值,简化代码的作用,但是在实际使用中如何写出漂亮的block却不是那么简单的事,就拿博主来说,虽然block经常用,但是奉行者拿来主义却总是不用心记忆写法,对于一个专业的开发者来说,这就落了下乘,索性回头看了下block,对于block又有了新的认识,下面博主通过代码来介绍下如何写出漂亮的block:

    //有返回值的block
    int (^sumBlock)(int b,int c);
    sumBlock = ^(int a,int b){
        return b + a;
    };
    //无返回值的block
    void (^sumBlock2)();
    sumBlock2 = ^(){
        NSLog(@"Hello");
    };
/*以上两种block看起来像那么回事,但是在实际运用中很少这么单独用,block多出现于传值方法,属性中。*/
@property(nonatomic,copy)void (^myBlock)();
@property(nonatomic,assign)int (^numBlock)(int a);
    //无返回值的属性block
    self.myBlock = ^(){
        NSLog(@"To use myBlock");
    };
    //有返回值的属性block
    int num = 10;
    self.numBlock = ^(int a){
        return num;
    };
/*使用的话可以当作一个方法在本类中调用,也可在其他类中调用本类中的操作,获取本类中的参数值。*/
block格式,在定义完类型后:(返回值类型 (^) (返回参数))block名
//这是一个无返回值的方法block
- (void)goToWorkOnRoad:(NSString *)onRoad duChe:(void(^)(NSString *moreCar))late noDu:(void(^)(NSString *goodRoad, NSString *goodLuck))inTime;
//实现这个方法
- (void)goToWorkOnRoad:(NSString *)onRoad duChe:(void (^)(NSString *))late noDu:(void (^)(NSString *, NSString *))inTime
{
//根据需要给出自己的判断依据,博主这里两个if都执行了,实际中有且只能有一个执行。
    if (late != nil)
    {
        late(@"late");
    }
    if (inTime != nil)
    {
        inTime(@"intime1",@"intime2");
    }
}
  [self goToWorkOnRoad:@"this road" duChe:^(NSString *moreCar) {
        //堵车了
    } noDu:^(NSString *goodRoad, NSString *goodLuck) {
        //没堵车
    }];
/*看起来是不是有点眼熟?有点AFNetworking的味道?这里你可以根据自己的需要往里面传值,下个界面block中执行回调或者在自己的界面中玩也是可以的*/
/*如果要变成一个有返回值的方法,很简单,把void变成对应的类名即可,同时把需要的参数放入返回类型中(return和调用block方法传值其实是一样的)不懂的看看AF的请求方法里面怎么写的。*/


目录
相关文章
|
27天前
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
83 3
|
3月前
|
存储 iOS开发
iOS 开发,如何进行应用的本地化(Localization)?
iOS 开发,如何进行应用的本地化(Localization)?
122 2
|
3月前
|
存储 数据建模 数据库
IOS开发数据存储:什么是 UserDefaults?有哪些替代方案?
IOS开发数据存储:什么是 UserDefaults?有哪些替代方案?
38 0
|
3月前
|
API 定位技术 iOS开发
IOS开发基础知识:什么是 Cocoa Touch?它在 iOS 开发中的作用是什么?
IOS开发基础知识:什么是 Cocoa Touch?它在 iOS 开发中的作用是什么?
42 2
|
3月前
|
安全 编译器 Swift
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
89 2
|
3月前
|
API 开发工具 iOS开发
iOS 开发高效率工具包:10 大必备工具
iOS 开发高效率工具包:10 大必备工具
42 1
|
3月前
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
52 1
|
1天前
|
API 定位技术 iOS开发
IOS开发基础知识:什么是 Cocoa Touch?它在 iOS 开发中的作用是什么?
【4月更文挑战第18天】**Cocoa Touch** 是iOS和Mac OS X应用的核心框架,包含面向对象库、运行时系统和触摸优化工具。它提供Mac验证的开发模式,强调触控接口和性能,涵盖3D图形、音频、网络及设备访问API,如相机和GPS。是构建高效iOS应用的基础,对开发者至关重要。
8 0
|
2月前
|
监控 API Swift
用Swift开发iOS平台上的上网行为管理监控软件
在当今数字化时代,随着智能手机的普及,人们对于网络的依赖日益增加。然而,对于一些特定场景,如家庭、学校或者企业,对于iOS设备上的网络行为进行管理和监控显得尤为重要。为了满足这一需求,我们可以利用Swift语言开发一款iOS平台上的上网行为管理监控软件。
181 2
|
3月前
|
数据可视化 iOS开发
iOS 开发,什么是 Interface Builder(IB)?如何使用 IB 构建用户界面?
iOS 开发,什么是 Interface Builder(IB)?如何使用 IB 构建用户界面?
40 4