Awesome, thanks :)
> On 30 Jun 2017, at 22:27, Joe Groff <jgr...@apple.com> wrote: > > >> On Jun 30, 2017, at 12:25 PM, Mike Ferenduros <mike.ferendu...@gmail.com> >> wrote: >> >> Ah, I think I was unclear - I want to extend the lifetime into an escaping >> closure, not just within a scope, and I was wondering what the minimal way >> is to do that. > > I see. Using `withExtendedLifetime` inside the closure still ought to > guarantee that the closure captures the variable, and will have the effect of > keeping it alive till the closure dies. > > -Joe > >>> On 30 Jun 2017, at 22:15, Joe Groff <jgr...@apple.com> wrote: >>> >>> >>>> On Jun 30, 2017, at 12:13 PM, Mike Ferenduros <mike.ferendu...@gmail.com> >>>> wrote: >>>> >>>> With an empty body, you mean? >>> >>> I'd say it's probably more readable to nest the code that's dependent on >>> the lifetime of the object in the block body, though you can just put >>> `withExtendedLifetime(x) { }` at the end of the region (or `defer { >>> withExtendedLifetime... }` at the beginning) if you can't have the nesting >>> for whatever reason. >>> >>> -Joe >>> >>>>> On 30 Jun 2017, at 22:00, Joe Groff <jgr...@apple.com> wrote: >>>>> >>>>> >>>>>> On Jun 30, 2017, at 11:47 AM, Mike Ferenduros via swift-users >>>>>> <swift-users@swift.org> wrote: >>>>>> >>>>>> I'm doing a RAII sort of thing with an object, and would like to keep it >>>>>> alive until an completion-block is called (asynchronously). >>>>>> >>>>>> Is it sufficient to say '_ = x' in the completion-block to keep a live >>>>>> reference to the object? >>>>>> >>>>>> I was told that the optimiser is free to discard this line, and thus the >>>>>> object could be freed prematurely depending on how the code is compiled. >>>>>> If so, is there an idiomatic way to do this? Or should I just avoid RAII >>>>>> in Swift? >>>>> >>>>> `withExtendedLifetime(x) { ... }` is the supported way of extending the >>>>> lifetime of an object. >>>>> >>>>> -Joe >>> > _______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users