{"id":13464,"date":"2016-02-09T12:03:49","date_gmt":"2016-02-09T17:03:49","guid":{"rendered":"http:\/\/mjtsai.com\/blog\/?p=13464"},"modified":"2016-02-09T12:04:45","modified_gmt":"2016-02-09T17:04:45","slug":"the-flaws-of-kvo","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2016\/02\/09\/the-flaws-of-kvo\/","title":{"rendered":"The Flaws of KVO"},"content":{"rendered":"<p><a href=\"https:\/\/medium.com\/@sandofsky\/the-flaws-of-kvo-4a3034ade8e8#.kbg56mczt\">Ben Sandofsky<\/a> (via <a href=\"https:\/\/twitter.com\/RebeccaSlatkin\/status\/696773081499639808\">Rebecca Slatkin<\/a>):<\/p>\n<blockquote cite=\"https:\/\/medium.com\/@sandofsky\/the-flaws-of-kvo-4a3034ade8e8#.kbg56mczt\"><p>On the performance front, things are getting better, with iOS 9 fixing <a href=\"https:\/\/twitter.com\/Catfish_Man\/status\/644924359057010688\">many issues<\/a>. On key-path safety, you can add simple <a href=\"https:\/\/github.com\/jspahrsummers\/libextobjc\/blob\/master\/extobjc\/EXTKeyPathCoding.h#L38\">compile time checks<\/a>.<\/p><p>But even with a full rewrite, KVO&rsquo;s underlying pattern makes things harder to maintain and debug. Ad-hoc property-observation is just a bad idea.<\/p><\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Ben Sandofsky (via Rebecca Slatkin): On the performance front, things are getting better, with iOS 9 fixing many issues. On key-path safety, you can add simple compile time checks.But even with a full rewrite, KVO&rsquo;s underlying pattern makes things harder to maintain and debug. Ad-hoc property-observation is just a bad idea.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"","apple_news_api_id":"","apple_news_api_modified_at":"","apple_news_api_revision":"","apple_news_api_share_url":"","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[4],"tags":[69,800,31,275,30,71],"class_list":["post-13464","post","type-post","status-publish","format-standard","hentry","category-programming-category","tag-cocoa","tag-concurrency","tag-ios","tag-keyvalueobserving","tag-mac","tag-programming"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/13464","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=13464"}],"version-history":[{"count":1,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/13464\/revisions"}],"predecessor-version":[{"id":13465,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/13464\/revisions\/13465"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=13464"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=13464"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=13464"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}