Using blocks with ARC just requires more discipline, that's all. It isn't to be avoided, just carefully thought about at the appropriate times.
On Thu, Apr 25, 2013 at 6:07 AM, Oleg Krupnov <oleg.krup...@gmail.com>wrote: > The compiler indeed warns, but only for ARC projects, and for non-ARC > projects it perfectly allows blocks to create retain cycles without > any warnings, even Xcode's Analyze doesn't help. > > Besides, I'm afraid the compiler is not always capable to detect all > such dangerous situations even with ARC on. > > So I am afraid it ends up with lots of retain cycles in virtually > every project that uses blocks, but programmers just don't notice > and/or just don't care. Do you often check your projects for leaks of > this kind? You will be surprised if you do try. > > My point remains: blocks are dangerous and there is no easy way to > ensure they are safe. You can't avoid referencing "self" in blocks, > because it is the very point of almost every callback block. So you > have to every time to remind yourself to jump through hoops to avoid > the retain cycles. Nah. > > > > On Thu, Apr 25, 2013 at 1:45 PM, Tom Davie <tom.da...@gmail.com> wrote: > > > > On 25 Apr 2013, at 11:40, Diederik Meijer | Ten Horses < > diede...@tenhorses.com> wrote: > > > >> I don't agree, blocks are very powerful. > >> > >> I am using Xcode 4.6 and in a project that uses ARC it was throwing > warnings when a block reference to a property caused a retain cycle. This > is how I found it and why I mentioned it in another thread in the first > place. > >> > >> I haven't tested it extensively, but it looks as if the compiler > recognises these situations easily and then tells you about it. > >> > >> So I wouldn't call blocks dangerous at all… > > > > You're right – the compiler *is* detecting some simple cases, as I > suggested! Note – this does not make throwing blocks around without paying > attention to retain cycles inherently safe though, the compiler can not > statically infer all potential cycles. > > > > Thanks > > > > Tom Davie > > _______________________________________________ > > Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) > > Please do not post admin requests or moderator comments to the list. > Contact the moderators at cocoa-dev-admins(at)lists.apple.com > > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/cocoa-dev/sbdegutis%40gmail.com > > This email sent to sbdegu...@gmail.com > _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com