Skip to content

beeth0ven/WeakOwner

Repository files navigation

WeakOwner

Build Status Swift Version License Platform Carthage compatible

A better way to deal function with weak reference.

At a Glance

  • Function without return value:

    button.rx.tap
        .subscribe(onNext: weak(self) { me in me.showAlert() })
        ...

    is equivalent to:

    button.rx.tap
        .subscribe(onNext: { [weak self] in
            guard let me = self else { return }
            me.showAlert()
        })
        ...
  • Function with return value:

    let searchResults = rxText
        .flatMapLatest(weak(self, default: .empty()) { me, text in
            me.searchGitHub(text)
        })

    is equivalent to:

    let searchResults = rxText
        .flatMapLatest { [weak self] text -> Observable<[Repository]> in
            guard let me = self else { return .empty() }
            return me.searchGitHub(text)
    }

Installation

  • For iOS 8+ projects with CocoaPods:

    pod 'WeakOwner'
  • For iOS 8+ projects with Carthage:

    github "beeth0ven/WeakOwner"
    

License

WeakOwner is under MIT license. See the LICENSE file for more info.