<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">On Jan 1, 2016, at 5:00 PM, Jared Sinclair via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:<div><blockquote type="cite" class=""><div class=""><div id="bloop_customfont" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; margin: 0px;" class="">The one-to-many observer pattern could really use a first-party, native Swift solution. The day-to-day practice of writing iOS / OS X applications needs it, and we end up falling back on antiquated APIs like KVO or NSNotificationCenter, or short-lived third-party libraries. This is an essential need that deserves a fresh approach.</div></div></blockquote><br class=""></div><div>Hi Jared,</div><div><br class=""></div><div>I agree with your motivation, but I can’t see us having time to take this on in the Swift 3 timeframe. There is a huge potential design space here, and KVO has some significant sub-optimalities in its design - only one of which is that notifications often get delivered on the “wrong” thread.</div><div><br class=""></div><div>It is pretty likely that we’ll get property behaviors in the Swift 3 timeframe, and that may enable some KVO like systems to be built. However, I doubt we would standardize and include a KVO system in the Swift 3 timeframe because of the short timeframes involved. Also, I’m very hopeful that we’ll be able to tackle concurrency in Swift 4, and making these two features mesh well seems really important.</div><div><br class=""></div><div>That said, feel free to start hacking on the compiler to prototype your ideas!</div><div><br class=""></div><div>-Chris</div><br class=""></body></html>