{"id":1236,"date":"2006-04-14T11:56:04","date_gmt":"2006-04-14T15:56:04","guid":{"rendered":"http:\/\/mjtsai.com\/blog\/2006\/04\/14\/kvc-injection\/"},"modified":"2018-08-22T21:34:36","modified_gmt":"2018-08-23T01:34:36","slug":"kvc-injection","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2006\/04\/14\/kvc-injection\/","title":{"rendered":"KVC Injection"},"content":{"rendered":"<p>\n<a href=\"http:\/\/fraserspeirs.livejournal.com\/1024546.html\">Fraser Speirs<\/a>:\n<\/p>\n\n<blockquote cite=\"http:\/\/fraserspeirs.livejournal.com\/1024546.html\">\nSomewhere in Aperture, it&rsquo;s reading the keywords on an iPhoto image, composing a keypath from the bare string of the keyword and calling -valueForKeyPath: with that string. Further, the &ldquo;@&rdquo; sign has a special meaning in Key-Value Coding&mdash;it signifies an array operator&mdash;so instead of accessing the keypath &ldquo;photo.keywords.Flickr,&rdquo; the keypath might be &ldquo;photo.keywords.@Flickr&rdquo; and &ldquo;@Flickr&rdquo; is not a supported array or set operator in KVC.\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Fraser Speirs: Somewhere in Aperture, it&rsquo;s reading the keywords on an iPhoto image, composing a keypath from the bare string of the keyword and calling -valueForKeyPath: with that string. Further, the &ldquo;@&rdquo; sign has a special meaning in Key-Value Coding&mdash;it signifies an array operator&mdash;so instead of accessing the keypath &ldquo;photo.keywords.Flickr,&rdquo; the keypath might be &ldquo;photo.keywords.@Flickr&rdquo; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2018-08-23T01:34:38Z","apple_news_api_id":"b63f86a4-fcc3-47f4-9510-59843c4032b7","apple_news_api_modified_at":"2018-08-23T01:34:38Z","apple_news_api_revision":"AAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/w==","apple_news_api_share_url":"https:\/\/apple.news\/Atj-GpPzDR_SVEFmEPEAytw","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":[114,69,1245,30,71],"class_list":["post-1236","post","type-post","status-publish","format-standard","hentry","category-programming-category","tag-aperture","tag-cocoa","tag-key-value-coding-kvc","tag-mac","tag-programming"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/1236","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=1236"}],"version-history":[{"count":1,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/1236\/revisions"}],"predecessor-version":[{"id":22534,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/1236\/revisions\/22534"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=1236"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=1236"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=1236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}