`
iaiai
  • 浏览: 2203562 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

swift 中使用weak self

 
阅读更多
        button.rx.tap.subscribe({ [weak self] _ in
            self?.navigationController?.popViewController(animated: true)
        }).disposed(by: disposeBag!)

        button.rx.controlEvent(.touchUpInside).subscribe({ [weak self] _ in  //必须要加[weak self],否则释放不掉,不会执行deinit
                self?.navigationController?.popViewController(animated: true)
            })


不管用哪种方式,如果调用self,必须要写[weak self],要不会释放不掉的
分享到:
评论

相关推荐

    ios-swift 封装的 无限轮播图图.zip

    总的来说,这个封装的无限轮播图组件提供了一个灵活且易用的解决方案,让开发者能够在Swift项目中快速集成这一功能,同时保持良好的用户体验和设计一致性。通过深入理解并运用这些技术,开发者可以进一步扩展和定制...

    Swift 4.2使用self做为变量名浅析

    在 Swift 4.2 之前,self 是全局保留关键字,所以如果在逃逸闭包中,如果在闭包中把 self 标记为 weak 后,如果要使用需要使用 ` 包起来:`guard let `self` = self else { return }。虽然这样解决了变量名的问题,...

    swift-Aspects一个iOSAOP面向方面编程的简单库

    5. **参数传递**:"swift-Aspects"还支持传递方法的参数到切面闭包中,这样你可以在切面中使用这些参数。 6. **错误处理**:在切面中处理异常或错误情况,可以避免对原始方法代码的干扰。 7. **类别(Category)...

    swift-Every.SwiftNSTimer的一个便利封装

    然而,Swift的标准库并没有提供对它的直接桥接,因此在Swift中使用`NSTimer`时通常需要通过`NSRunLoop`或者`RunLoop`进行操作,这在代码中可能会显得较为繁琐。`Every.Swift`就是为了解决这个问题而创建的一个库,它...

    swift UITableView 闭包 block

    3. **在UITableViewDataSource中配置Cell**: 当你需要在UITableView中使用这个自定义Cell时,需要在`tableView(_:cellForRowAt:)`方法中配置它。这里,你可以设置Cell的数据并关联闭包: ```swift func tableView(_...

    swift-一句话使用KVO使用完无需自己移除KVO

    KVO在Objective-C中广泛使用,并且在Swift中也可以通过桥接头文件来实现。标题提到的“swift-一句话使用KVO使用完无需自己移除KVO”暗示了一个可能的优化或者便利的实现方式,让我们来详细探讨。 首先,我们来理解...

    swift中实现segment在导航栏控制页面之间的转换

    确保每个页面都具有独特的标识符,这将在之后的代码中使用。 接下来,我们需要编写代码来处理Segment Control的选中事件。首先,为Segment Control添加一个 outlets 和 actions。在ViewController的Swift文件中,...

    swift scrollview xib 用法

    本教程将详细介绍如何在Swift中使用XIB来设置和操作UIScrollView。 首先,我们需要创建一个新的XIB文件。在Xcode中,选择`File` > `New` > `File...`,然后在User Interface类别下选择`View`。接着,给XIB文件命名...

    swift-一行代码解决UITextFiled和UITextView限制字数和输入特殊字符

    在Swift中,实现这样的功能并不复杂,只需要一行代码就能达到目的。下面我们将详细探讨如何实现这个需求以及背后的原理。 首先,我们需要理解Swift中的UITextField和UITextView类。这两个类都是UIControl的子类,...

    ios-swift-demo13-使用UIDatePicker实现倒计时功能.zip

    以上就是在Swift中使用UIDatePicker实现倒计时功能的完整流程。这个项目中的"demo13-使用UIDatePicker实现倒计时功能"将提供一个实际的示例,帮助开发者更好地理解和应用这些概念。通过这个教程,你可以学会如何结合...

    swift-使用通知和runtime-AOP的为AppDelegate瘦身方案

    NotificationCenter.default.addObserver(forName: .UserLoginStatusChanged, object: nil, queue: .main) { [weak self] _ in // 处理用户登录状态改变的逻辑 } ``` **运行时(Runtime)和面向切面编程(AOP)** ...

    swift-CHGTimer-简单易用的GCD定时器

    **Swift中的GCD定时器——CHGTimer** 在iOS应用开发中,我们经常需要使用定时器来执行周期性的任务,例如刷新UI、网络请求、游戏循环等。...如果你需要在Swift项目中使用GCD定时器,CHGTimer是一个值得考虑的选择。

    Swift 实现单例 代理 通知 的设计模式 OC 跟 Swift 如何混编

    在Swift中,我们可以使用GCD(Grand Central Dispatch)或者静态变量来实现: ```swift class Singleton { static let sharedInstance = Singleton() private init() {} } ``` 上述代码中,`sharedInstance`是...

    swift-快速定位Block循环引用所处位置

    4. **使用Swift的Weak和Unowned**:通过在Block中使用`weak`或`unowned`关键字,可以防止Block捕获一个强引用。`weak`创建一个可选的弱引用,如果对象被释放,弱引用会变为nil。`unowned`则假设引用的对象不会先于...

    swift-Swift2.x编写NavigationController动态缩放titleView

    tableView.contentOffsetChanged { [weak self] _ in guard let self = self else { return } self.animateTitleScale(isZoomingIn: tableView.contentOffset.y > 0) } } ``` 在滚动回调中,我们判断当前的滚动...

    swift-webView进度条显示Demo

    在iOS应用开发中,...总之,“swift-webView进度条显示Demo”是一个实用的例子,它教会了我们在Swift中如何使用WKWebView加载网页的同时,通过进度条实时反馈加载状态,这是一个提高应用交互性和专业性的关键技巧。

    weakable-self:Swift微框架可轻松处理内部封闭中对自身的弱引用

    为了解决此问题,开发人员需要使用[weak self]和guard等结构编写其他代码,其结果如下所示: service. call ( completion : { [ weak self ] result in guard let self = self else { return } // use weak ...

    swift-GCDTimer简单实用的GCD定时执行器类库Swift

    本文将深入探讨GCDTimer的使用方法、工作原理以及其在Swift开发中的应用。 GCDTimer的核心概念是利用GCD的DispatchSource API创建定时器。DispatchSource提供了一种机制来监听特定类型的事件,如文件系统变化、内存...

    ios-iOS10 通知Swift 3.0.zip

    NotificationManager.pending { [weak self] value in print("(value)未发送") self?.showAlert(title: "通知", message: "(value)未发送") } NotificationManager.delivered{ [weak self] ...

    swift-使用Swift在iOS平台下实现小米Yeelight床头灯的基本控制

    本文将深入探讨如何使用Swift来实现对小米Yeelight床头灯的基本控制,包括官方未公开的蓝牙(BLE)控制指令的文档化。 首先,要与Yeelight智能灯泡进行通信,我们需要了解蓝牙低功耗(Bluetooth Low Energy,简称...

Global site tag (gtag.js) - Google Analytics