swift 闭包在对象间传值的用法

本文通过定义Person和Car类,介绍了Swift中闭包的基本使用方法,包括定义、调用及赋值,并展示了如何利用闭包实现不同类之间的弱耦合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Swift的闭包类似于OC中的block,所以我理解的用法基本可以参照block 唯一需要注意的就是格式问题了,现在将我探索的格式分享给大家
定义一个Person类:

import Cocoa

class Person: NSObject {
    public var name:String
    public var runBlock:((Void)->Void)?
    init(name:String) {
        self.name = name
        super.init()
    }
    public func personRun(){
        self.runBlock!()
    }

}

从其中可以看出一个闭包的简单类型定义和调用,我觉得将它定义为可选类型是因为觉得它有可能为空。
接着定义一个Car类:

import Cocoa

class Car: NSObject {
    public var Carname:String
    init(Carname:String) {
        self.Carname = Carname
        super.init()

    }
}

接着在main 中创建两个对象,实现传值:

let car = Car.init(Carname: "大众")
let jack = Person.init(name: "jack")
jack.runBlock = {(Void) in
    print("\(jack.name)开着\(car.Carname)在公路上行驶")
}
jack.personRun()

闭包的赋值就在这里了,只要牢记这闭包的三个步骤:定义、调用、赋值三个的格式(写法)其他的跟block用起来应该还是类似的
查看打印结果:
这里写图片描述
可以看到Person 对象和 Car对象之间并没有用属性关联起来,但是却完成了传值,这大概就是我们经常讲的弱耦合吧。
最后呢,我的水平一般,如果有大神觉得我写的不对,一定要告诉我啊,我感激不尽。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值