I’m back to writing Objective-C again, and it is actually warning you about possible reference cycles in your closures. I’m for Swift doing the same.
-Kenny > On Feb 20, 2017, at 3:22 AM, Lauri Lehmijoki via swift-evolution > <swift-evolution@swift.org> wrote: > > I'm developing an application where we use RxSwift heavily. RxSwift is a > stream library. Consequently, closures that we pass to its combinators often > live infinitely (this is because one can use RxSwift to represent infinitely > long sequences in time). > > Closures with infinite lifespan have implications for the question "what is > the best reference capture mode for closures". My experience is that in > RxSwift applications, the current default (strong) is almost always > suboptimal. It leads to difficult-to-detect memory leaks and introduces a > "gotcha" factor to programmers who are new to Swift. I'd prefer the default > to be weak capture. > > So, I'd like to ask you two things: > > A) By default, why the Swift closure captures values strongly? > B) Should we add a compiler option that, when turned on, would emit a warning > if a closure strongly captures a class instance? > > Regards > Lauri > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org > https://lists.swift.org/mailman/listinfo/swift-evolution _______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution