我想知道我是否可以像这样使用Swift / RxSwift使用无点样式:
class MyClass {
private let ageService: Observable<Int> = AgeService()
private let userService: Observable<Bool> = UserService()
func test() -> Observable<Int>{
return userService
.getRandomUser()
.flatMap(self.networkService.ageFromUser)
}
还是我应该一直和..一起去?
func test2() -> Observable<Int>{
return userService.getRandomUser().flatMap { [weak self] user in
guard let strongSelf = self else { return .empty() }
return strongSelf.networkService.ageFromUser(user)
}
}
答案 0 :(得分:0)
在使用闭包时,当您指向内部内部闭包时(例如在flapmap的情况下),如果不使用[弱/无主的自我],则会创建保留周期。
因此,开发人员有责任避免此类保留周期。因此,每当您在任何闭包内部引用self时,请尝试根据作用域使用弱/无所有权。您可以使用第二个功能,即test2功能。
希望有帮助... !!!