markohlebar / BIND

Data Binding and MVVM for iOS
MIT License
354 stars 48 forks source link

Fix reference counting #28

Open aspcartman opened 8 years ago

aspcartman commented 8 years ago

I don't know how this could possibly work, but if you create a new application, add this lib and just try to BINDO with -observe: it won't work, because right after the creation of the binding it gets deallocated: BNDBinding is not retained. You had an NSMutableSet, where you add BNDBindings, but now it's gone and only BNDBindingKVOObserver are retained by association. But they have a weak reference to parent BNDBinding. That's a fail.

To fix this we must make BNDBindingKVOObservers to hold strong reference to parent BNDBinding.

aspcartman commented 8 years ago

Ping, maaan

markohlebar commented 8 years ago

Hey @aspcartman sorry I'm super busy with other stuff. Had a brief look at it, and I think you might be right. The way we're using BINDO is always by keeping the reference to the BNDBinding that gets returned. I need more time to test your fix though, thanks for spotting this.

aspcartman commented 8 years ago

@markohlebar thanks :)