Skip to content

Instantly share code, notes, and snippets.

@spnkr
Created August 20, 2015 20:35
Show Gist options
  • Save spnkr/502141d41cd8ee6dad38 to your computer and use it in GitHub Desktop.
Save spnkr/502141d41cd8ee6dad38 to your computer and use it in GitHub Desktop.
<!DOCTYPE html><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<base href="http://iosdevblog.com/tag/nsfetchedresultscontroller/"><style type="text/css">body { margin-left:0;margin-right:0;margin-top:0; }#google-cache-hdr {background:#f5f5f5 !important;font:13px arial,sans-serif !important;text-align:left !important;color:#202020 !important;border:0 !important;margin:0 !important;border-bottom:1px solid #cecece !important;line-height:16px !important ;padding:16px 28px 24px 28px !important;}#google-cache-hdr * {display:inline !important;font:inherit !important;text-align:inherit !important;color:inherit !important;line-height:inherit !important;background:none !important;border:0 !important;margin:0 !important;padding:0 !important;letter-spacing:0 !important;}#google-cache-hdr a {text-decoration:none !important;color:#1a0dab !important;}#google-cache-hdr a:hover { text-decoration:underline !important; }#google-cache-hdr a:visited { color:#609 !important; }#google-cache-hdr div { display:block !important;margin-top:4px !important; }#google-cache-hdr b {font-weight:bold !important;display:inline-block !important;direction:ltr !important;}</style><div id="google-cache-hdr" dir=ltr><div>This is Google&#39;s cache of <a href="http://iosdevblog.com/tag/nsfetchedresultscontroller/" dir="ltr">http://iosdevblog.com/tag/nsfetchedresultscontroller/</a>. It is a snapshot of the page as it appeared on Jul 4, 2015 04:52:14 GMT. </div><div>The <a href="http://iosdevblog.com/tag/nsfetchedresultscontroller/" dir="ltr">current page</a> could have changed in the meantime. <a href="http://support.google.com/websearch/bin/answer.py?hl=en&amp;p=cached&amp;answer=1687222">Learn more</a></div><div></div><div><span style="display:inline-block !important;margin-top:8px !important;margin-right:104px !important;white-space:nowrap !important;"><span style="margin-right:28px !important;"><span style="font-weight:bold !important;">Full version</span></span><span style="margin-right:28px !important;"><a href="http://webcache.googleusercontent.com/search?q=cache:http://iosdevblog.com/tag/nsfetchedresultscontroller/&amp;es_sm=91&strip=1&vwsrc=0">Text-only version</a></span><span style="margin-right:28px !important;"><a href="http://webcache.googleusercontent.com/search?q=cache:http://iosdevblog.com/tag/nsfetchedresultscontroller/&amp;es_sm=91&strip=0&vwsrc=1">View source</a></span></span><span style="display:inline-block !important;margin-top:8px !important;color:#717171 !important;">Tip: To quickly find your search term on this page, press <b>Ctrl+F</b> or <b>⌘-F</b> (Mac) and use the find bar.</span></div></div><div style="position:relative;">
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>NSFetchedResultsController | My iOS development blog</title>
<link rel="profile" href="http://gmpg.org/xfn/11">
<link rel="pingback" href="http://iosdevblog.com/xmlrpc.php">
<script src='https://r-login.wordpress.com/remote-login.php?action=js&amp;host=iosdevblog.com&amp;id=23505840&amp;t=1435985533&amp;back=http%3A%2F%2Fiosdevblog.com%2Ftag%2Fnsfetchedresultscontroller%2F' type="text/javascript"></script>
<script type="text/javascript">
/* <![CDATA[ */
if ( 'function' === typeof WPRemoteLogin ) {
document.cookie = "wordpress_test_cookie=test; path=/";
if ( document.cookie.match( /(;|^)\s*wordpress_test_cookie\=/ ) ) {
WPRemoteLogin();
}
}
/* ]]> */
</script>
<link rel="alternate" type="application/rss+xml" title="My iOS development blog &raquo; Feed" href="http://iosdevblog.com/feed/" />
<link rel="alternate" type="application/rss+xml" title="My iOS development blog &raquo; Comments Feed" href="http://iosdevblog.com/comments/feed/" />
<link rel="alternate" type="application/rss+xml" title="My iOS development blog &raquo; NSFetchedResultsController Tag Feed" href="http://iosdevblog.com/tag/nsfetchedresultscontroller/feed/" />
<script type="text/javascript">
/* <![CDATA[ */
function addLoadEvent(func){var oldonload=window.onload;if(typeof window.onload!='function'){window.onload=func;}else{window.onload=function(){oldonload();func();}}}
/* ]]> */
</script>
<link rel='stylesheet' id='all-css-0' href='https://s1.wp.com/_static/??-eJx9j+0KgzAMRV9oXRh+sP0YexatsUb7hU1XfPvVjW2C4J+QhHO4XEheSGcZLYOJwuuoyAbQNGGAEdk3chLv6yxDOMEGb7VTf8EphZ2LLHqntUuQqFPIO2mTQbYnS7z8liNYuhnz3/iGV8JgRw1qNBk70oyvv9a6DrnNvsiGTz7Tom39jCGIPA1FI3jIQXvv8wYfW+hJMj0RAi8aV/Bh7peyKKv6di2q8QVE54X0' type='text/css' media='all' />
<link rel='stylesheet' id='fictive-open-sans-css' href='http://fonts.googleapis.com/css?family=Open+Sans%3A300italic%2C400italic%2C700italic%2C400%2C300%2C700&#038;ver=4.2-RC4-32277' type='text/css' media='all' />
<link rel='stylesheet' id='fictive-bitter-css' href='http://fonts.googleapis.com/css?family=Bitter%3A400%2C700%2C400italic&#038;subset=latin%2Clatin-ext&#038;ver=4.2-RC4-32277' type='text/css' media='all' />
<link rel='stylesheet' id='all-css-4' href='https://s2.wp.com/_static/??-eJx9jtEKwjAMRX/IGsqG4oP4LVvJaqRNSps69vdWhrAh+nYuuecSmJNxwoqsEKtJoXriAh4ZM7XDDzy6Ug6wcfWOEQukOsJETumJQOyg6BLQzMlJXBUCFl3XPvC1tftDTBA3KAnvgpnCQPmfmnEM4ht6aK1NfEu3eLV9119OnT3bxwvrtmGL' type='text/css' media='all' />
<link rel='stylesheet' id='print-css-5' href='https://s0.wp.com/wp-content/mu-plugins/global-print/global-print.css?m=1387483371g' type='text/css' media='print' />
<link rel='stylesheet' id='all-css-6' href='https://s1.wp.com/_static/??/wp-content/mu-plugins/post-flair/sharing/sharing.css,/wp-content/themes/h4/global.css?m=1435590157j' type='text/css' media='all' />
<script type='text/javascript'>
/* <![CDATA[ */
var LoggedOutFollow = {"invalid_email":"Your subscription did not succeed, please try again with a valid email address."};
/* ]]> */
</script>
<script type='text/javascript' src='https://s1.wp.com/_static/??-eJyFkGsKAjEMhC9kt+zDn+JZ9pEtqW1Tm9aip7fCiohVIZCQfAwzkdkLdLNJC7DUpc4JwnVrjead/AUIiyqMERqL7gnP5CK4+GAtTWhAJIYwqrIrQitVOE8cLTAXqHJ9t4TugpD/YhqiH+eTCMB4+1CdDCnhTVLoWJZZwUIpipWMoSwzLgpiLTz7V87vX9uooz20Q9/v227oBn0HlAKG0w=='></script>
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://plusangel.wordpress.com/xmlrpc.php?rsd" />
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://s1.wp.com/wp-includes/wlwmanifest.xml" />
<meta name="generator" content="WordPress.com" />
<link rel="shortcut icon" type="image/x-icon" href="http://1.gravatar.com/blavatar/5ea2453ac9379af12d78601157bbef5a?s=16" sizes="16x16" />
<link rel="icon" type="image/x-icon" href="http://1.gravatar.com/blavatar/5ea2453ac9379af12d78601157bbef5a?s=16" sizes="16x16" />
<link rel="apple-touch-icon-precomposed" href="http://1.gravatar.com/blavatar/33b388ecd0f66e1dc1bf5e5a3f803b7a?s=114" />
<link rel='openid.server' href='http://plusangel.wordpress.com/?openidserver=1' />
<link rel='openid.delegate' href='http://plusangel.wordpress.com/' />
<link rel="search" type="application/opensearchdescription+xml" href="http://iosdevblog.com/osd.xml" title="My iOS development blog" />
<link rel="search" type="application/opensearchdescription+xml" href="https://wordpress.com/opensearch.xml" title="WordPress.com" />
<style type="text/css">
.recentcomments a {
display: inline !important;
padding: 0 !important;
margin: 0 !important;
}
table.recentcommentsavatartop img.avatar, table.recentcommentsavatarend img.avatar {
border: 0px;
margin: 0;
}
table.recentcommentsavatartop a, table.recentcommentsavatarend a {
border: 0px !important;
background-color: transparent !important;
}
td.recentcommentsavatarend, td.recentcommentsavatartop {
padding: 0px 0px 1px 0px;
margin: 0px;
}
td.recentcommentstextend {
border: none !important;
padding: 0px 0px 2px 10px;
}
.rtl td.recentcommentstextend {
padding: 0px 10px 2px 0px;
}
td.recentcommentstexttop {
border: none;
padding: 0px 0px 0px 10px;
}
.rtl td.recentcommentstexttop {
padding: 0px 10px 0px 0px;
}
</style>
<style type="text/css">
.widget_twitter li {
word-wrap: break-word;
}
</style>
<meta name="application-name" content="My iOS development blog" /><meta name="msapplication-window" content="width=device-width;height=device-height" /><meta name="msapplication-tooltip" content="share knowledge and experience with iOS as a development platform" /><meta name="msapplication-task" content="name=Subscribe;action-uri=http://iosdevblog.com/feed/;icon-uri=http://1.gravatar.com/blavatar/5ea2453ac9379af12d78601157bbef5a?s=16" /><meta name="msapplication-task" content="name=Sign up for a free blog;action-uri=http://wordpress.com/signup/;icon-uri=http://s2.wp.com/i/favicon.ico" /><meta name="msapplication-task" content="name=WordPress.com Support;action-uri=http://support.wordpress.com/;icon-uri=http://s2.wp.com/i/favicon.ico" /><meta name="msapplication-task" content="name=WordPress.com Forums;action-uri=http://forums.wordpress.com/;icon-uri=http://s2.wp.com/i/favicon.ico" /><meta name="title" content="Posts about NSFetchedResultsController on My iOS development blog" />
<meta name="description" content="Posts about NSFetchedResultsController written by plusangel" />
<style type="text/css" id="syntaxhighlighteranchor"></style>
</head>
<body class="archive tag tag-nsfetchedresultscontroller tag-53870622 mp6 customizer-styles-applied has-header-image highlander-enabled highlander-light infinite-scroll neverending">
<div id="page" class="hfeed site">
<header id="masthead" class="site-header" role="banner">
<a href="http://iosdevblog.com/" rel="home">
<img src="http://plusangel.files.wordpress.com/2014/06/cropped-apples.jpg" width="1500" height="1348" alt="" class="header-image">
</a>
<div class="site-branding">
<div class="header-avatar">
<a href="http://iosdevblog.com/" rel="home">
<img src="http://gravatar.com/avatar/6ef49827e77edba4dc441a84d24fd18f/?s=140&#038;d=identicon" width="70" height="70" alt="">
</a>
</div>
<h1 class="site-title"><a href="http://iosdevblog.com/" rel="home">My iOS development blog</a></h1>
<h2 class="site-description">share knowledge and experience with iOS as a development platform</h2>
</div>
<div class="menu-toggles clear">
<h1 id="widgets-toggle" class="menu-toggle"><span class="screen-reader-text">Widgets</span></h1>
<h1 id="search-toggle" class="menu-toggle"><span class="screen-reader-text">Search</span></h1>
</div>
<nav id="site-navigation" class="main-navigation" role="navigation">
<a class="skip-link screen-reader-text" href="#content">Skip to content</a>
</nav><!-- #site-navigation -->
<div id="secondary" class="widget-area" role="complementary">
<aside id="image-3" class="widget widget_image"><h1 class="widget-title">Welcome&#8230;</h1><div style="overflow:hidden;"><img src="http://plusangel.files.wordpress.com/2013/07/monkey42.png?w=180&amp;h=180" class="aligncenter" width="180" height="180" /></div>
</aside><aside id="twitter-3" class="widget widget_twitter"><h1 class="widget-title"><a href='http://twitter.com/iplusangel'>Follow me&#8230;</a></h1><ul class='tweets'>
<li>
Absolutely useful when smth goes wrong: how to reinstall the default graphics drivers in an ubuntu machine <a href="http://askubuntu.com/questions/80914/how-reinstall-the-default-graphics-drivers"> askubuntu.com/questions/8091…</a> <a href='http://twitter.com/search?q=%23ubuntu'>#ubuntu</a> <a href="http://twitter.com/iplusangel/statuses/617030261524590592" class="timesince">10&nbsp;hours&nbsp;ago</a>
</li>
<li>
indent XML code using geany in ubuntu <a href="http://stackoverflow.com/questions/23540094/auto-correct-xml-indentation-in-geany"> stackoverflow.com/questions/2354…</a> <a href='http://twitter.com/search?q=%23ubuntu'>#ubuntu</a> <a href='http://twitter.com/search?q=%23geany'>#geany</a> <a href='http://twitter.com/search?q=%23xml'>#xml</a> <a href="http://twitter.com/iplusangel/statuses/617012230815657984" class="timesince">12&nbsp;hours&nbsp;ago</a>
</li>
<li>
c++ indent code using geany editor <a href='http://twitter.com/search?q=%23geany'>#geany</a> <a href='http://twitter.com/search?q=%23ubuntu'>#ubuntu</a> <a href='http://twitter.com/search?q=%23cpp'>#cpp</a> <a href="http://askubuntu.com/questions/481182/is-there-any-shortcut-key-to-align-code-in-geany-editor"> askubuntu.com/questions/4811…</a> <a href="http://twitter.com/iplusangel/statuses/616664311675625476" class="timesince">1&nbsp;day&nbsp;ago</a>
</li>
<li>
The illusion of life <a href="http://the12principles.tumblr.com"> the12principles.tumblr.com</a> <a href="http://twitter.com/iplusangel/statuses/520877975160369152" class="timesince">8&nbsp;months&nbsp;ago</a>
</li>
<li>
How to convert IplImage to a matrix in OpenCV <a href="http://opensourcecollection.blogspot.co.uk/2011/02/how-to-convert-iplimage-to-matrix.html"> opensourcecollection.blogspot.co.uk/2011/02/how-to…</a> <a href="http://twitter.com/iplusangel/statuses/520694657140129793" class="timesince">8&nbsp;months&nbsp;ago</a>
</li>
</ul><a href="http://twitter.com/iplusangel" class='twitter-follow-button' data-show-count='false' data-link-color='#bd5532' data-text-color='#7c705e'>Follow @iplusangel</a></aside><aside id="wp_tag_cloud-2" class="widget wp_widget_tag_cloud"><h1 class="widget-title">We care about&#8230;</h1><div style="overflow:hidden"><a href='http://iosdevblog.com/tag/abort/' class='tag-link-112205' title='1 topic' style='font-size: 8pt;'>abort()</a>
<a href='http://iosdevblog.com/tag/about-pets/' class='tag-link-6677314' title='3 topics' style='font-size: 16.75pt;'>about pets</a>
<a href='http://iosdevblog.com/tag/afnetworking/' class='tag-link-66128052' title='2 topics' style='font-size: 13.25pt;'>AFNetworking</a>
<a href='http://iosdevblog.com/tag/app/' class='tag-link-232047' title='2 topics' style='font-size: 13.25pt;'>app</a>
<a href='http://iosdevblog.com/tag/appearance-proxy/' class='tag-link-140026565' title='2 topics' style='font-size: 13.25pt;'>appearance proxy</a>
<a href='http://iosdevblog.com/tag/arc/' class='tag-link-83435' title='1 topic' style='font-size: 8pt;'>arc</a>
<a href='http://iosdevblog.com/tag/assignment-3/' class='tag-link-239992' title='1 topic' style='font-size: 8pt;'>Assignment 3</a>
<a href='http://iosdevblog.com/tag/assignment-4/' class='tag-link-239994' title='2 topics' style='font-size: 13.25pt;'>assignment 4</a>
<a href='http://iosdevblog.com/tag/blocks/' class='tag-link-51936' title='3 topics' style='font-size: 16.75pt;'>blocks</a>
<a href='http://iosdevblog.com/tag/c193p/' class='tag-link-57844890' title='2 topics' style='font-size: 13.25pt;'>C193P</a>
<a href='http://iosdevblog.com/tag/calculate-age/' class='tag-link-2707629' title='1 topic' style='font-size: 8pt;'>calculate age</a>
<a href='http://iosdevblog.com/tag/cats/' class='tag-link-306' title='2 topics' style='font-size: 13.25pt;'>cats</a>
<a href='http://iosdevblog.com/tag/cllocationmanager/' class='tag-link-44501201' title='1 topic' style='font-size: 8pt;'>CLLocationManager</a>
<a href='http://iosdevblog.com/tag/core-data/' class='tag-link-895080' title='5 topics' style='font-size: 22pt;'>core data</a>
<a href='http://iosdevblog.com/tag/core-plot/' class='tag-link-32835062' title='2 topics' style='font-size: 13.25pt;'>core plot</a>
<a href='http://iosdevblog.com/tag/dealloc/' class='tag-link-37426873' title='1 topic' style='font-size: 8pt;'>dealloc</a>
<a href='http://iosdevblog.com/tag/debbuging/' class='tag-link-24821132' title='1 topic' style='font-size: 8pt;'>debbuging</a>
<a href='http://iosdevblog.com/tag/delegate/' class='tag-link-445004' title='1 topic' style='font-size: 8pt;'>delegate</a>
<a href='http://iosdevblog.com/tag/developer-blog/' class='tag-link-202128' title='2 topics' style='font-size: 13.25pt;'>developer blog</a>
<a href='http://iosdevblog.com/tag/documents-folder/' class='tag-link-8334332' title='1 topic' style='font-size: 8pt;'>documents folder</a>
<a href='http://iosdevblog.com/tag/dogs/' class='tag-link-305' title='2 topics' style='font-size: 13.25pt;'>dogs</a>
<a href='http://iosdevblog.com/tag/error/' class='tag-link-11869' title='1 topic' style='font-size: 8pt;'>error</a>
<a href='http://iosdevblog.com/tag/exc_bad_access/' class='tag-link-30392389' title='1 topic' style='font-size: 8pt;'>EXC_BAD_ACCESS</a>
<a href='http://iosdevblog.com/tag/fonts/' class='tag-link-24938' title='1 topic' style='font-size: 8pt;'>fonts</a>
<a href='http://iosdevblog.com/tag/greener-pastures/' class='tag-link-1970151' title='1 topic' style='font-size: 8pt;'>greener pastures</a>
<a href='http://iosdevblog.com/tag/hello-poly/' class='tag-link-57871778' title='1 topic' style='font-size: 8pt;'>Hello Poly</a>
<a href='http://iosdevblog.com/tag/http-post/' class='tag-link-5104779' title='1 topic' style='font-size: 8pt;'>http post</a>
<a href='http://iosdevblog.com/tag/ibtool/' class='tag-link-18242702' title='1 topic' style='font-size: 8pt;'>ibtool</a>
<a href='http://iosdevblog.com/tag/icloud/' class='tag-link-10036452' title='1 topic' style='font-size: 8pt;'>iCloud</a>
<a href='http://iosdevblog.com/tag/icon/' class='tag-link-119262' title='1 topic' style='font-size: 8pt;'>icon</a>
<a href='http://iosdevblog.com/tag/instance-variables/' class='tag-link-214635' title='1 topic' style='font-size: 8pt;'>instance variables</a>
<a href='http://iosdevblog.com/tag/internationalization/' class='tag-link-82083' title='1 topic' style='font-size: 8pt;'>internationalization</a>
<a href='http://iosdevblog.com/tag/ios/' class='tag-link-324281' title='5 topics' style='font-size: 22pt;'>iOS</a>
<a href='http://iosdevblog.com/tag/ios-customization/' class='tag-link-92446324' title='1 topic' style='font-size: 8pt;'>iOS customization</a>
<a href='http://iosdevblog.com/tag/iphone/' class='tag-link-106595' title='4 topics' style='font-size: 19.666666666667pt;'>iphone</a>
<a href='http://iosdevblog.com/tag/iphone-5/' class='tag-link-8493660' title='2 topics' style='font-size: 13.25pt;'>iphone 5</a>
<a href='http://iosdevblog.com/tag/iphone-application/' class='tag-link-1309963' title='1 topic' style='font-size: 8pt;'>iphone application</a>
<a href='http://iosdevblog.com/tag/iphone-simulator/' class='tag-link-5281869' title='3 topics' style='font-size: 16.75pt;'>iphone simulator</a>
<a href='http://iosdevblog.com/tag/ivars/' class='tag-link-1859886' title='1 topic' style='font-size: 8pt;'>ivars</a>
<a href='http://iosdevblog.com/tag/john-wordsworth/' class='tag-link-24313666' title='1 topic' style='font-size: 8pt;'>john wordsworth</a>
<a href='http://iosdevblog.com/tag/localization/' class='tag-link-37184' title='2 topics' style='font-size: 13.25pt;'>localization</a>
<a href='http://iosdevblog.com/tag/mainwindow-xib/' class='tag-link-70561584' title='1 topic' style='font-size: 8pt;'>mainwindow.xib</a>
<a href='http://iosdevblog.com/tag/mercurial/' class='tag-link-220805' title='1 topic' style='font-size: 8pt;'>mercurial</a>
<a href='http://iosdevblog.com/tag/missing-file/' class='tag-link-22361002' title='1 topic' style='font-size: 8pt;'>missing file</a>
<a href='http://iosdevblog.com/tag/mountain-lion/' class='tag-link-577787' title='2 topics' style='font-size: 13.25pt;'>mountain lion</a>
<a href='http://iosdevblog.com/tag/multipart/' class='tag-link-1905096' title='1 topic' style='font-size: 8pt;'>multipart</a>
<a href='http://iosdevblog.com/tag/nsdate/' class='tag-link-29658109' title='1 topic' style='font-size: 8pt;'>NSDate</a>
<a href='http://iosdevblog.com/tag/nsmutablerequests/' class='tag-link-70643467' title='1 topic' style='font-size: 8pt;'>NSMutableRequests</a>
<a href='http://iosdevblog.com/tag/nsmutableurlrequest/' class='tag-link-16332329' title='1 topic' style='font-size: 8pt;'>NSMutableURLRequest</a>
<a href='http://iosdevblog.com/tag/objective-c-2/' class='tag-link-35078870' title='1 topic' style='font-size: 8pt;'>Objective C</a>
<a href='http://iosdevblog.com/tag/paparazzi/' class='tag-link-18770' title='1 topic' style='font-size: 8pt;'>paparazzi</a>
<a href='http://iosdevblog.com/tag/paparazzi2/' class='tag-link-22338635' title='1 topic' style='font-size: 8pt;'>paparazzi2</a>
<a href='http://iosdevblog.com/tag/photoshop/' class='tag-link-1615' title='1 topic' style='font-size: 8pt;'>photoshop</a>
<a href='http://iosdevblog.com/tag/plist/' class='tag-link-941297' title='1 topic' style='font-size: 8pt;'>plist</a>
<a href='http://iosdevblog.com/tag/properties/' class='tag-link-30255' title='1 topic' style='font-size: 8pt;'>properties</a>
<a href='http://iosdevblog.com/tag/sandbox/' class='tag-link-73721' title='2 topics' style='font-size: 13.25pt;'>sandbox</a>
<a href='http://iosdevblog.com/tag/scene/' class='tag-link-5017' title='1 topic' style='font-size: 8pt;'>scene</a>
<a href='http://iosdevblog.com/tag/solutions/' class='tag-link-26658' title='1 topic' style='font-size: 8pt;'>solutions</a>
<a href='http://iosdevblog.com/tag/stanford-iphone/' class='tag-link-15988716' title='1 topic' style='font-size: 8pt;'>stanford iphone</a>
<a href='http://iosdevblog.com/tag/stanford-university/' class='tag-link-602846' title='2 topics' style='font-size: 13.25pt;'>Stanford University</a>
<a href='http://iosdevblog.com/tag/storyboard/' class='tag-link-43870' title='1 topic' style='font-size: 8pt;'>StoryBoard</a>
<a href='http://iosdevblog.com/tag/storyboards/' class='tag-link-256764' title='2 topics' style='font-size: 13.25pt;'>storyboards</a>
<a href='http://iosdevblog.com/tag/tabbar/' class='tag-link-7725875' title='1 topic' style='font-size: 8pt;'>tabbar</a>
<a href='http://iosdevblog.com/tag/tab-bar/' class='tag-link-10496531' title='1 topic' style='font-size: 8pt;'>tab bar</a>
<a href='http://iosdevblog.com/tag/tutorial/' class='tag-link-2932' title='1 topic' style='font-size: 8pt;'>tutorial</a>
<a href='http://iosdevblog.com/tag/tutorials/' class='tag-link-1124' title='1 topic' style='font-size: 8pt;'>tutorials</a>
<a href='http://iosdevblog.com/tag/uibutton/' class='tag-link-25563013' title='1 topic' style='font-size: 8pt;'>UIButton</a>
<a href='http://iosdevblog.com/tag/uiglossybutton/' class='tag-link-92446323' title='1 topic' style='font-size: 8pt;'>UIGlossyButton</a>
<a href='http://iosdevblog.com/tag/uiscrollview/' class='tag-link-12026356' title='4 topics' style='font-size: 19.666666666667pt;'>UIScrollView</a>
<a href='http://iosdevblog.com/tag/urlencoded/' class='tag-link-70643468' title='1 topic' style='font-size: 8pt;'>urlencoded</a>
<a href='http://iosdevblog.com/tag/window-based-application-template/' class='tag-link-70822315' title='1 topic' style='font-size: 8pt;'>Window-based Application template</a>
<a href='http://iosdevblog.com/tag/xcode-2/' class='tag-link-34987968' title='2 topics' style='font-size: 13.25pt;'>xcode</a>
<a href='http://iosdevblog.com/tag/xcode-4-2/' class='tag-link-58521084' title='2 topics' style='font-size: 13.25pt;'>xcode 4.2</a>
<a href='http://iosdevblog.com/tag/xcode-4-3/' class='tag-link-70028525' title='2 topics' style='font-size: 13.25pt;'>xcode 4.3</a>
<a href='http://iosdevblog.com/tag/xml/' class='tag-link-6852' title='2 topics' style='font-size: 13.25pt;'>xml</a></div></aside> </div><!-- #secondary -->
<div id="site-search" class="header-search">
<form role="search" method="get" class="search-form" action="http://iosdevblog.com/">
<label>
<span class="screen-reader-text">Search for:</span>
<input type="search" class="search-field" placeholder="Search &hellip;" value="" name="s" title="Search for:" />
</label>
<input type="submit" class="search-submit" value="Search" />
</form> </div>
</header><!-- #masthead -->
<div id="content" class="site-content">
<section id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<header class="page-header">
<h1 class="page-title">
NSFetchedResultsController </h1>
</header><!-- .page-header -->
<div class="hentry-wrapper">
<article id="post-298" class="post-298 post type-post status-publish format-standard hentry category-ios-6 category-ios-learning tag-core-data tag-nsfetchedresultscontroller">
<header class="entry-header">
<h1 class="entry-title"><a href="http://iosdevblog.com/2013/07/24/nsfetchedresultscontroller-cheat-sheet/" rel="bookmark">NSFetchedResultsController cheat sheet</a></h1> <div class="entry-meta">
<span class="post-date"><a href="http://iosdevblog.com/2013/07/24/nsfetchedresultscontroller-cheat-sheet/" title="20:08" rel="bookmark"><time class="entry-date" datetime="2013-07-24T20:08:32+00:00">July 24, 2013</time></a></span><span class="byline"><span class="author vcard"><a class="url fn n" href="http://iosdevblog.com/author/plusangel/" title="View all posts by plusangel" rel="author">plusangel</a></span></span>
<span class="comments-link"><a href="http://iosdevblog.com/2013/07/24/nsfetchedresultscontroller-cheat-sheet/#respond">Leave a comment</a></span>
</div>
</header><!-- .entry-header -->
<div class="entry-content">
<p><strong>What is NSFetchedResultsController?</strong></p>
<p>Apple says:</p>
<blockquote><p>You use a fetched results controller to efficiently manage the results returned from a Core Data fetch request to provide data for a UITableView object.</p>
<p>While table views can be used in several ways, fetched results controllers are primarily intended to assist you with a master list view. UITableView expects its data source to provide cells as an array of sections made up of rows. You configure a fetch results controller using a fetch request that specifies the entity, an array containing at least one sort ordering, and optionally a filter predicate. The fetched results controller efficiently analyzes the result of the fetch request and computes all the information about sections in the result set. It also computes all the information for the index based on the result set.</p>
<p>In addition, fetched results controllers provide the following features:</p>
<p>Optionally monitor changes to objects in the associated managed object context, and report changes in the results set to its delegate (see “The Controller’s Delegate”).<br />
Optionally cache the results of its computation so that if the same data is subsequently re-displayed, the work does not have to be repeated (see “The Cache”).</p></blockquote>
<p><strong>Declare a NSFetcedResultsController</strong></p>
<pre class="brush: objc; title: ; notranslate" title="">
@property (strong, nonatomic) NSFetchedResultsController *fetchedResultsController;
</pre>
<p><strong>Make your view controller NSFetcedResultsController delegate</strong></p>
<pre class="brush: objc; title: ; notranslate" title="">
#import &quot;myViewController.h&quot;
@interface myViewController () &lt;... , NSFetchedResultsControllerDelegate&gt;
...
@property (strong, nonatomic) NSFetchedResultsController *fetchedResultsController;
</pre>
<p><strong>How to set a NSFetcedResultsController</strong></p>
<pre class="brush: objc; title: ; notranslate" title="">
- (NSFetchedResultsController *)fetchedResultsController {
if (_fetchedResultsController != nil) {
return _fetchedResultsController;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@&quot;Department&quot; inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@&quot;nameOfDepartment&quot; ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
[fetchRequest setFetchBatchSize:20];
NSFetchedResultsController *theFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:@&quot;Root&quot;];
self.fetchedResultsController = theFetchedResultsController;
self.fetchedResultsController.delegate = self;
return _fetchedResultsController;
}
</pre>
<p><strong>Perform a fetch from Core Data</strong></p>
<pre class="brush: objc; title: ; notranslate" title="">
- (void)viewDidLoad
{
[super viewDidLoad];
...
NSError *error;
if (![[self fetchedResultsController] performFetch:&amp;error]) {
// Update to handle the error appropriately.
NSLog(@&quot;Unresolved error %@, %@&quot;, error, [error userInfo]);
exit(-1); // Fail
}
}
</pre>
<p><strong>Get a specific object</strong></p>
<pre class="brush: objc; title: ; notranslate" title="">
aViewController.myObject = (CustomObject *)[self.fetchedResultsController objectAtIndexPath:indexPath];
</pre>
<p><strong>Count the number of objects for the sake of TableView Datasource</strong></p>
<pre class="brush: objc; title: ; notranslate" title="">
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
id sectionInfo = [[_fetchedResultsController sections] objectAtIndex:section];
return [sectionInfo numberOfObjects];
}
</pre>
<p><strong>Get the total number of fetched objects</strong></p>
<pre class="brush: objc; title: ; notranslate" title="">
[fetchedResultsController.fetchedObjects count];
</pre>
<p><strong>Perform fetch with criteria using NSPridicate</strong></p>
<pre class="brush: objc; title: ; notranslate" title="">
- (void)viewDidLoad
{
[super viewDidLoad];
...
[NSFetchedResultsController deleteCacheWithName:@&quot;Root&quot;];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@&quot;department = %@&quot;, self.myDepartment];
[[self fetchedResultsController].fetchRequest setPredicate:predicate];
NSError *error;
if (![[self fetchedResultsController] performFetch:&amp;error]) {
// Update to handle the error appropriately.
NSLog(@&quot;Unresolved error %@, %@&quot;, error, [error userInfo]);
exit(-1); // Fail
}
}
</pre>
<p>Don&#8217;t forget to flush! Hmmm ok lets explain. You cannot simply change the fetch request to modify the results as the criteria change. You must delete the cache (using deleteCacheWithName:) or you should not use a cache if you are changing the fetch request (set cacheName:nil). If you are not follow either, your app will crash.</p>
<p><strong>Delete an object</strong></p>
<pre class="brush: objc; title: ; notranslate" title="">
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
CustomObject *objectToDelete = [self.fetchedResultsController objectAtIndexPath:indexPath];
[self.managedObjectContext deleteObject:objectToDelete];
NSError *error = nil;
if (![_managedObjectContext save:&amp;error]) {/*
[(AppDelegate *)[UIApplication sharedApplication].delegate presentError:error WithText:NSLocalizedString(@&quot;insert categories&quot;, @&quot;Error description in saving products' categories&quot;)];*/
}
}
else if (editingStyle == UITableViewCellEditingStyleInsert) {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
}
}
</pre>
<p><strong>Don&#8217;t forget to include NSFetchedResultsControllerDelegate Protocol methods</strong></p>
<p>An instance of NSFetchedResultsController uses methods NSFetchedResultsControllerDelegate Protocol to notify its delegate that the controller’s fetch results have been changed due to an add, remove, move, or update operations. So, add the following methods to your .m viewController source file.</p>
<pre class="brush: objc; title: ; notranslate" title="">
/*
Assume self has a property 'tableView' -- as is the case for an instance of a UITableViewController
subclass -- and a method configureCell:atIndexPath: which updates the contents of a given cell
with information from a managed object at the given index path in the fetched results controller.
*/
- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller {
[self.tableView beginUpdates];
}
- (void)controller:(NSFetchedResultsController *)controller didChangeSection:(id )sectionInfo
atIndex:(NSUInteger)sectionIndex forChangeType:(NSFetchedResultsChangeType)type {
switch(type) {
case NSFetchedResultsChangeInsert:
[self.tableView insertSections:[NSIndexSet indexSetWithIndex:sectionIndex]
withRowAnimation:UITableViewRowAnimationFade];
break;
case NSFetchedResultsChangeDelete:
[self.tableView deleteSections:[NSIndexSet indexSetWithIndex:sectionIndex]
withRowAnimation:UITableViewRowAnimationFade];
break;
}
}
- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject
atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type
newIndexPath:(NSIndexPath *)newIndexPath {
UITableView *tableView = self.tableView;
switch(type) {
case NSFetchedResultsChangeInsert:
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath]
withRowAnimation:UITableViewRowAnimationFade];
break;
case NSFetchedResultsChangeDelete:
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationFade];
break;
case NSFetchedResultsChangeUpdate:
[self configureCell:[tableView cellForRowAtIndexPath:indexPath]
atIndexPath:indexPath];
break;
case NSFetchedResultsChangeMove:
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationFade];
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath]
withRowAnimation:UITableViewRowAnimationFade];
break;
}
}
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller {
[self.tableView endUpdates];
}
</pre>
<p><strong>Need a good tutorial for <strong>NSFetchedResultsController</strong>?</strong><br />
Please read Adam&#8217;s Burkepile &#8220;Core Data on iOS 5 Tutorial: How To Use NSFetchedResultsController&#8221; published <a href="http://www.raywenderlich.com/999/core-data-tutorial-how-to-use-nsfetchedresultscontroller">here</a>.</p>
<p><strong>Is that all?</strong><br />
No, I&#8217;ll update it as long as I find new tips!</p>
<div id="jp-post-flair" class="sharedaddy sd-rating-enabled sd-like-enabled sd-sharing-enabled"><div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon sd-sharing"><h3 class="sd-title">Share this:</h3><div class="sd-content"><ul><li class="share-twitter"><a rel="nofollow" data-shared="sharing-twitter-298" class="share-twitter sd-button share-icon no-text" href="http://iosdevblog.com/2013/07/24/nsfetchedresultscontroller-cheat-sheet/?share=twitter" target="_blank" title="Click to share on Twitter"><span></span><span class="sharing-screen-reader-text">Click to share on Twitter (Opens in new window)</span></a></li><li class="share-facebook"><a rel="nofollow" data-shared="sharing-facebook-298" class="share-facebook sd-button share-icon no-text" href="http://iosdevblog.com/2013/07/24/nsfetchedresultscontroller-cheat-sheet/?share=facebook" target="_blank" title="Share on Facebook"><span></span><span class="sharing-screen-reader-text">Share on Facebook (Opens in new window)</span></a></li><li class="share-email"><a rel="nofollow" data-shared="" class="share-email sd-button share-icon no-text" href="http://iosdevblog.com/2013/07/24/nsfetchedresultscontroller-cheat-sheet/?share=email" target="_blank" title="Click to email this to a friend"><span></span><span class="sharing-screen-reader-text">Click to email this to a friend (Opens in new window)</span></a></li><li class="share-print"><a rel="nofollow" data-shared="" class="share-print sd-button share-icon no-text" href="http://iosdevblog.com/2013/07/24/nsfetchedresultscontroller-cheat-sheet/" target="_blank" title="Click to print"><span></span><span class="sharing-screen-reader-text">Click to print (Opens in new window)</span></a></li><li class="share-linkedin"><a rel="nofollow" data-shared="sharing-linkedin-298" class="share-linkedin sd-button share-icon no-text" href="http://iosdevblog.com/2013/07/24/nsfetchedresultscontroller-cheat-sheet/?share=linkedin" target="_blank" title="Click to share on LinkedIn"><span></span><span class="sharing-screen-reader-text">Click to share on LinkedIn (Opens in new window)</span></a></li><li class="share-google-plus-1"><a rel="nofollow" data-shared="sharing-google-298" class="share-google-plus-1 sd-button share-icon no-text" href="http://iosdevblog.com/2013/07/24/nsfetchedresultscontroller-cheat-sheet/?share=google-plus-1" target="_blank" title="Click to share on Google+"><span></span><span class="sharing-screen-reader-text">Click to share on Google+ (Opens in new window)</span></a></li><li class="share-end"></li></ul></div></div></div><div class='sharedaddy sd-block sd-like jetpack-likes-widget-wrapper jetpack-likes-widget-unloaded' id='like-post-wrapper-23505840-298-5597667e55add' data-src='//widgets.wp.com/likes/#blog_id=23505840&amp;post_id=298&amp;origin=plusangel.wordpress.com&amp;obj_id=23505840-298-5597667e55add' data-name='like-post-frame-23505840-298-5597667e55add'><h3 class='sd-title'>Like this:</h3><div class='likes-widget-placeholder post-likes-widget-placeholder' style='height:55px'><span class='button'><span>Like</span></span> <span class="loading">Loading...</span></div><span class='sd-text-color'></span><a class='sd-link-color'></a></div></div> </div><!-- .entry-content -->
<footer class="entry-footer entry-meta">
<span class="tags-links clear">
<a href="http://iosdevblog.com/tag/core-data/" rel="tag">core data</a><a href="http://iosdevblog.com/tag/nsfetchedresultscontroller/" rel="tag">NSFetchedResultsController</a> </span>
</footer><!-- .entry-footer -->
</article><!-- #post-## -->
</div>
</main><!-- #main -->
</section><!-- #primary -->
</div><!-- #content -->
<footer id="colophon" class="site-footer" role="contentinfo">
<div class="site-info">
<a href="https://wordpress.com/?ref=footer_website">Create a free website or blog at WordPress.com</a>.
<span class="sep"> | </span>
<a href="https://wordpress.com/themes/fictive/" title="Learn more about this theme">The Fictive Theme</a>. </div><!-- .site-info -->
</footer><!-- #colophon -->
</div><!-- #page -->
<script type="text/javascript">
//<![CDATA[
var infiniteScroll = {"settings":{"id":"main","ajaxurl":"http:\/\/iosdevblog.com\/?infinity=scrolling","type":"scroll","wrapper":false,"wrapper_class":"infinite-wrap","footer":"page","click_handle":"1","text":"Older posts","totop":"Scroll back to top","currentday":"24.07.13","order":"DESC","scripts":[],"styles":[],"google_analytics":false,"offset":0,"history":{"host":"iosdevblog.com","path":"\/tag\/nsfetchedresultscontroller\/page\/%d\/","use_trailing_slashes":true,"parameters":""},"query_args":{"tag":"nsfetchedresultscontroller","error":"","m":"","p":0,"post_parent":"","subpost":"","subpost_id":"","attachment":"","attachment_id":0,"name":"","static":"","pagename":"","page_id":0,"second":"","minute":"","hour":"","day":0,"monthnum":0,"year":0,"w":0,"category_name":"","cat":"","tag_id":53870622,"author":"","author_name":"","feed":"","tb":"","paged":0,"comments_popup":"","meta_key":"","meta_value":"","preview":"","s":"","sentence":"","fields":"","menu_order":"","category__in":[],"category__not_in":[],"category__and":[],"post__in":[],"post__not_in":[],"tag__in":[],"tag__not_in":[],"tag__and":[],"tag_slug__in":["nsfetchedresultscontroller"],"tag_slug__and":[],"post_parent__in":[],"post_parent__not_in":[],"author__in":[],"author__not_in":[],"posts_per_page":7,"ignore_sticky_posts":false,"suppress_filters":false,"cache_results":false,"update_post_term_cache":true,"update_post_meta_cache":true,"post_type":"","nopaging":false,"comments_per_page":"50","no_found_rows":false,"order":"DESC"},"last_post_date":"2013-07-24 20:08:32","stats":"blog=23505840&v=wpcom&tz=2&user_id=0&subd=plusangel&x_pagetype=infinite"}};
//]]>
</script>
<!-- wpcom_wp_footer -->
<script type='text/javascript' src='//0.gravatar.com/js/gprofiles.js?ver=201527x'></script>
<script type='text/javascript'>
/* <![CDATA[ */
var WPGroHo = {"my_hash":""};
/* ]]> */
</script>
<script type='text/javascript' src='https://s2.wp.com/wp-content/mu-plugins/gravatar-hovercards/wpgroho.js?m=1380573781g'></script>
<script>
//initialize and attach hovercards to all gravatars
jQuery( document ).ready( function( $ ) {
if (typeof Gravatar === "undefined"){
return;
}
if ( typeof Gravatar.init !== "function" ) {
return;
}
Gravatar.profile_cb = function( hash, id ) {
WPGroHo.syncProfileData( hash, id );
};
Gravatar.my_hash = WPGroHo.my_hash;
Gravatar.init( 'body', '#wp-admin-bar-my-account' );
});
</script>
<div style="display:none">
</div>
<div id="infinite-footer">
<div class="container">
<div class="blog-info">
<a id="infinity-blog-title" href="http://iosdevblog.com/" rel="home">
My iOS development blog </a>
</div>
<div class="blog-credits">
<a href="https://wordpress.com/?ref=footer_website">Create a free website or blog at WordPress.com</a>. <a href="https://wordpress.com/themes/fictive/" title="Learn more about this theme">The Fictive Theme</a>. </div>
</div>
</div><!-- #infinite-footer -->
<div id="bit" class="loggedout-follow-normal">
<a class="bsub" href="javascript:void(0)"><span id='bsub-text'>Follow</span></a>
<div id="bitsubscribe">
<h3><label for="loggedout-follow-field">Follow &ldquo;My iOS development blog&rdquo;</label></h3>
<form action="https://subscribe.wordpress.com" method="post" accept-charset="utf-8" id="loggedout-follow">
<p>Get every new post delivered to your Inbox.</p>
<p id="loggedout-follow-error" style="display: none;"></p>
<p><input type="email" name="email" value="Enter your email address" onfocus='this.value=(this.value=="Enter your email address") ? "" : this.value;' onblur='this.value=(this.value=="") ? "Enter your email address" : this.value;' id="loggedout-follow-field"/></p>
<input type="hidden" name="action" value="subscribe"/>
<input type="hidden" name="blog_id" value="23505840"/>
<input type="hidden" name="source" value="http://iosdevblog.com/tag/nsfetchedresultscontroller/"/>
<input type="hidden" name="sub-type" value="loggedout-follow"/>
<input type="hidden" id="_wpnonce" name="_wpnonce" value="385d35e0c0" /><input type="hidden" name="_wp_http_referer" value="/tag/nsfetchedresultscontroller/" />
<p id='bsub-subscribe-button'><input type="submit" value="Sign me up" /></p>
</form>
<div id='bsub-credit'><a href="https://wordpress.com/?ref=lof">Build a website with WordPress.com</a></div>
</div><!-- #bitsubscribe -->
</div><!-- #bit -->
<script type="text/javascript">
window.WPCOM_sharing_counts = {"http:\/\/iosdevblog.com\/2013\/07\/24\/nsfetchedresultscontroller-cheat-sheet\/":298};
window.WPCOM_jetpack = false;
window.WPCOM_site_ID = 23505840;
</script>
<script type="text/javascript">
var windowOpen;
jQuery(document).on( 'ready post-load', function(){
jQuery( 'a.share-twitter' ).on( 'click', function() {
if ( 'undefined' !== typeof windowOpen ){ // If there's another sharing window open, close it.
windowOpen.close();
}
windowOpen = window.open( jQuery(this).attr( 'href' ), 'wpcomtwitter', 'menubar=1,resizable=1,width=600,height=350' );
return false;
});
});
</script>
<script type="text/javascript">
var windowOpen;
jQuery(document).on( 'ready post-load', function(){
jQuery( 'a.share-facebook' ).on( 'click', function() {
if ( 'undefined' !== typeof windowOpen ){ // If there's another sharing window open, close it.
windowOpen.close();
}
windowOpen = window.open( jQuery(this).attr( 'href' ), 'wpcomfacebook', 'menubar=1,resizable=1,width=600,height=400' );
return false;
});
});
</script>
<div id="sharing_email" style="display: none;">
<form action="/tag/nsfetchedresultscontroller/" method="post">
<label for="target_email">Send to Email Address</label>
<input type="email" name="target_email" id="target_email" value="" />
<label for="source_name">Your Name</label>
<input type="text" name="source_name" id="source_name" value="" />
<label for="source_email">Your Email Address</label>
<input type="email" name="source_email" id="source_email" value="" />
<input type="text" id="jetpack-source_f_name" name="source_f_name" class="input" value="" size="25" autocomplete="off" />
<script> document.getElementById('jetpack-source_f_name').value = ''; </script>
<div class="recaptcha" id="sharing_recaptcha"></div><input type="hidden" name="recaptcha_public_key" id="recaptcha_public_key" value="6LcYW8MSAAAAADBAuEH9yaPcF7lWh11Iq62ZKtoo" />
<img style="float: right; display: none" class="loading" src="http://s2.wp.com/wp-content/mu-plugins/post-flair/sharing/images/loading.gif?m=1315610318g" alt="loading" width="16" height="16" />
<input type="submit" value="Send Email" class="sharing_send" />
<a rel="nofollow" href="#cancel" class="sharing_cancel">Cancel</a>
<div class="errors errors-1" style="display: none;">
Post was not sent - check your email addresses! </div>
<div class="errors errors-2" style="display: none;">
Email check failed, please try again </div>
<div class="errors errors-3" style="display: none;">
Sorry, your blog cannot share posts by email. </div>
</form>
</div>
<script type="text/javascript">
var windowOpen;
jQuery(document).on( 'ready post-load', function(){
jQuery( 'a.share-linkedin' ).on( 'click', function() {
if ( 'undefined' !== typeof windowOpen ){ // If there's another sharing window open, close it.
windowOpen.close();
}
windowOpen = window.open( jQuery(this).attr( 'href' ), 'wpcomlinkedin', 'menubar=1,resizable=1,width=580,height=450' );
return false;
});
});
</script>
<script type="text/javascript">
var windowOpen;
jQuery(document).on( 'ready post-load', function(){
jQuery( 'a.share-google-plus-1' ).on( 'click', function() {
if ( 'undefined' !== typeof windowOpen ){ // If there's another sharing window open, close it.
windowOpen.close();
}
windowOpen = window.open( jQuery(this).attr( 'href' ), 'wpcomgoogle-plus-1', 'menubar=1,resizable=1,width=480,height=550' );
return false;
});
});
</script>
<iframe src='http://widgets.wp.com/likes/master.html?ver=20141028#ver=20141028&amp;mp6=1' scrolling='no' id='likes-master' name='likes-master' style='display:none;'></iframe>
<div id='likes-other-gravatars'><div class="likes-text"><span>%d</span> bloggers like this:</div><ul class="wpl-avatars sd-like-gravatars"></ul></div>
<script type="text/javascript">
//<![CDATA[
var jetpackLikesWidgetQueue = [];
var jetpackLikesWidgetBatch = [];
var jetpackLikesMasterReady = false;
function JetpackLikespostMessage( message, target ) {
if ( "string" === typeof message ){
try{
message = JSON.parse( message );
}
catch(e) {
return;
}
}
pm( {
target: target,
type: 'likesMessage',
data: message,
origin: '*'
} );
}
function JetpackLikesBatchHandler() {
var requests = [];
jQuery( 'div.jetpack-likes-widget-unloaded' ).each( function( i ) {
if ( jetpackLikesWidgetBatch.indexOf( this.id ) > -1 )
return;
jetpackLikesWidgetBatch.push( this.id );
var regex = /like-(post|comment)-wrapper-(\d+)-(\d+)-(\w+)/;
var match = regex.exec( this.id );
if ( ! match || match.length != 5 )
return;
var info = {
blog_id: match[2],
width: this.width
};
if ( 'post' == match[1] ) {
info.post_id = match[3];
} else if ( 'comment' == match[1] ) {
info.comment_id = match[3];
}
info.obj_id = match[4];
requests.push( info );
});
if ( requests.length > 0 ) {
JetpackLikespostMessage( { event: 'initialBatch', requests: requests }, window.frames['likes-master'] );
}
}
function JetpackLikesMessageListener( event ) {
if ( "undefined" == typeof event.event )
return;
if ( 'masterReady' == event.event ) {
jQuery( document ).ready( function() {
jetpackLikesMasterReady = true;
var stylesData = {
event: 'injectStyles'
};
if ( jQuery( 'iframe.admin-bar-likes-widget' ).length > 0 ) {
JetpackLikespostMessage( { event: 'adminBarEnabled' }, window.frames[ 'likes-master' ] );
stylesData.adminBarStyles = {
background: jQuery( '#wpadminbar .quicklinks li#wp-admin-bar-wpl-like > a' ).css( 'background' ),
isRtl: ( 'rtl' == jQuery( '#wpadminbar' ).css( 'direction' ) )
};
}
if ( !window.addEventListener )
jQuery( '#wp-admin-bar-admin-bar-likes-widget' ).hide();
stylesData.textStyles = {
color: jQuery( '.sd-text-color').css( 'color' ),
fontFamily: jQuery( '.sd-text-color' ).css( 'font-family' ),
fontSize: jQuery( '.sd-text-color' ).css( 'font-size' ),
direction: jQuery( '.sd-text-color' ).css( 'direction' ),
fontWeight: jQuery( '.sd-text-color' ).css( 'font-weight' ),
fontStyle: jQuery( '.sd-text-color' ).css( 'font-style' ),
textDecoration: jQuery( '.sd-text-color' ).css('text-decoration')
};
stylesData.linkStyles = {
color: jQuery( '.sd-link-color' ).css('color'),
fontFamily: jQuery( '.sd-link-color' ).css('font-family'),
fontSize: jQuery( '.sd-link-color' ).css('font-size'),
textDecoration: jQuery( '.sd-link-color' ).css('text-decoration'),
fontWeight: jQuery( '.sd-link-color' ).css( 'font-weight' ),
fontStyle: jQuery( '.sd-link-color' ).css( 'font-style' )
};
JetpackLikespostMessage( stylesData, window.frames[ 'likes-master' ] );
JetpackLikesBatchHandler();
jQuery( document ).on( 'inview', 'div.jetpack-likes-widget-unloaded', function() {
jetpackLikesWidgetQueue.push( this.id );
});
});
}
if ( 'showLikeWidget' == event.event ) {
jQuery( '#' + event.id + ' .post-likes-widget-placeholder' ).fadeOut( 'fast', function() {
jQuery( '#' + event.id + ' .post-likes-widget' ).fadeIn( 'fast', function() {
JetpackLikespostMessage( { event: 'likeWidgetDisplayed', blog_id: event.blog_id, post_id: event.post_id, obj_id: event.obj_id }, window.frames['likes-master'] );
});
});
}
if ( 'clickReblogFlair' == event.event ) {
wpcom_reblog.toggle_reblog_box_flair( event.obj_id );
}
if ( 'showOtherGravatars' == event.event ) {
var $container = jQuery( '#likes-other-gravatars' );
var $list = $container.find( 'ul' );
$container.hide();
$list.html( '' );
$container.find( '.likes-text span' ).text( event.total );
jQuery.each( event.likers, function( i, liker ) {
$list.append( '<li class="' + liker.css_class + '"><a href="' + liker.profile_URL + '" class="wpl-liker" rel="nofollow" target="_parent"><img src="' + liker.avatar_URL + '" alt="' + liker.name + '" width="30" height="30" style="padding-right: 3px;" /></a></li>');
} );
var offset = jQuery( "[name='" + event.parent + "']" ).offset();
$container.css( 'left', offset.left + event.position.left - 10 + 'px' );
$container.css( 'top', offset.top + event.position.top - 33 + 'px' );
var rowLength = Math.floor( event.width / 37 );
var height = ( Math.ceil( event.likers.length / rowLength ) * 37 ) + 13;
if ( height > 204 ) {
height = 204;
}
$container.css( 'height', height + 'px' );
$container.css( 'width', rowLength * 37 - 7 + 'px' );
$list.css( 'width', rowLength * 37 + 'px' );
$container.fadeIn( 'slow' );
var scrollbarWidth = $list[0].offsetWidth - $list[0].clientWidth;
if ( scrollbarWidth > 0 ) {
$container.width( $container.width() + scrollbarWidth );
$list.width( $list.width() + scrollbarWidth );
}
}
}
pm.bind( 'likesMessage', function(e) { JetpackLikesMessageListener(e); } );
jQuery( document ).click( function( e ) {
var $container = jQuery( '#likes-other-gravatars' );
if ( $container.has( e.target ).length === 0 ) {
$container.fadeOut( 'slow' );
}
});
function JetpackLikesWidgetQueueHandler() {
var wrapperID;
if ( ! jetpackLikesMasterReady ) {
setTimeout( JetpackLikesWidgetQueueHandler, 500 );
return;
}
if ( jetpackLikesWidgetQueue.length > 0 ) {
// We may have a widget that needs creating now
var found = false;
while( jetpackLikesWidgetQueue.length > 0 ) {
// Grab the first member of the queue that isn't already loading.
wrapperID = jetpackLikesWidgetQueue.splice( 0, 1 )[0];
if ( jQuery( '#' + wrapperID ).hasClass( 'jetpack-likes-widget-unloaded' ) ) {
found = true;
break;
}
}
if ( ! found ) {
setTimeout( JetpackLikesWidgetQueueHandler, 500 );
return;
}
} else if ( jQuery( 'div.jetpack-likes-widget-unloaded' ).length > 0 ) {
// Grab any unloaded widgets for a batch request
JetpackLikesBatchHandler();
// Get the next unloaded widget
wrapperID = jQuery( 'div.jetpack-likes-widget-unloaded' ).first()[0].id;
if ( ! wrapperID ) {
// Everything is currently loaded
setTimeout( JetpackLikesWidgetQueueHandler, 500 );
return;
}
}
if ( 'undefined' === typeof wrapperID ) {
setTimeout( JetpackLikesWidgetQueueHandler, 500 );
return;
}
var $wrapper = jQuery( '#' + wrapperID );
$wrapper.find( 'iframe' ).remove();
if ( $wrapper.hasClass( 'slim-likes-widget' ) ) {
$wrapper.find( '.post-likes-widget-placeholder' ).after( "<iframe class='post-likes-widget jetpack-likes-widget' name='" + $wrapper.data( 'name' ) + "' height='22px' width='68px' frameBorder='0' scrolling='no' src='" + $wrapper.data( 'src' ) + "'></iframe>" );
} else {
$wrapper.find( '.post-likes-widget-placeholder' ).after( "<iframe class='post-likes-widget jetpack-likes-widget' name='" + $wrapper.data( 'name' ) + "' height='55px' width='100%' frameBorder='0' src='" + $wrapper.data( 'src' ) + "'></iframe>" );
}
$wrapper.removeClass( 'jetpack-likes-widget-unloaded' ).addClass( 'jetpack-likes-widget-loading' );
$wrapper.find( 'iframe' ).load( function( e ) {
var $iframe = jQuery( e.target );
$wrapper.removeClass( 'jetpack-likes-widget-loading' ).addClass( 'jetpack-likes-widget-loaded' );
JetpackLikespostMessage( { event: 'loadLikeWidget', name: $iframe.attr( 'name' ), width: $iframe.width() }, window.frames[ 'likes-master' ] );
if ( $wrapper.hasClass( 'slim-likes-widget' ) ) {
$wrapper.find( 'iframe' ).Jetpack( 'resizeable' );
}
});
setTimeout( JetpackLikesWidgetQueueHandler, 250 );
}
JetpackLikesWidgetQueueHandler();
//]]>
</script>
<div id="carousel-reblog-box">
<form action="" name="carousel-reblog">
<textarea id="carousel-reblog-content" name="carousel-reblog-content" onclick="if ( this.value == 'Add your thoughts here... (optional)' ) { this.value = ''; }" onblur="if ( this.value == '' || this.value == '' ) { this.value = 'Add your thoughts here... (optional)'; }">Add your thoughts here... (optional)</textarea>
<label for="carousel-reblog-to-blog-id" id="carousel-reblog-lblogid">Post to</label>
<select name="carousel-reblog-to-blog-id" id="carousel-reblog-to-blog-id">
</select>
<div class="submit">
<span class="canceltext"><a href="" class="cancel">Cancel</a></span>
<input type="submit" name="carousel-reblog-submit" class="button" id="carousel-reblog-submit" value="Reblog Post" />
<input type="hidden" id="carousel-reblog-blog-id" value="23505840" />
<input type="hidden" id="carousel-reblog-blog-url" value="http://iosdevblog.com" />
<input type="hidden" id="carousel-reblog-blog-title" value="My iOS development blog" />
<input type="hidden" id="carousel-reblog-post-url" value="" />
<input type="hidden" id="carousel-reblog-post-title" value="" />
</div>
<input type="hidden" id="_wpnonce" name="_wpnonce" value="9546a47fc6" /><input type="hidden" name="_wp_http_referer" value="/tag/nsfetchedresultscontroller/" /> </form>
<div class="arrow"></div>
</div>
<script type='text/javascript' src='https://s2.wp.com/_static/??-eJyNzEsKgDAMBNALWYNttyLoATyDn2JatJYkot7eunbjYmAYhgdnUtMexUWBtB6Ljwx8Rxku9AuuOeLouxjgiXySfMZuJ1cGLuAXJehpVmkgudVIB6N7jfZt/Ri6DDVbXVmtjdWVseEB+dg81g=='></script>
<script type='text/javascript'>
(function(){
var corecss = document.createElement('link');
var themecss = document.createElement('link');
var corecssurl = "http://s0.wp.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shCore.css?m=1422342134g&amp;ver=3.0.9b";
if ( corecss.setAttribute ) {
corecss.setAttribute( "rel", "stylesheet" );
corecss.setAttribute( "type", "text/css" );
corecss.setAttribute( "href", corecssurl );
} else {
corecss.rel = "stylesheet";
corecss.href = corecssurl;
}
document.getElementsByTagName("head")[0].insertBefore( corecss, document.getElementById("syntaxhighlighteranchor") );
var themecssurl = "http://s0.wp.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shThemeDefault.css?m=1363304414g&amp;ver=3.0.9b";
if ( themecss.setAttribute ) {
themecss.setAttribute( "rel", "stylesheet" );
themecss.setAttribute( "type", "text/css" );
themecss.setAttribute( "href", themecssurl );
} else {
themecss.rel = "stylesheet";
themecss.href = themecssurl;
}
//document.getElementById("syntaxhighlighteranchor").appendChild(themecss);
document.getElementsByTagName("head")[0].insertBefore( themecss, document.getElementById("syntaxhighlighteranchor") );
})();
SyntaxHighlighter.config.strings.expandSource = '+ expand source';
SyntaxHighlighter.config.strings.help = '?';
SyntaxHighlighter.config.strings.alert = 'SyntaxHighlighter\n\n';
SyntaxHighlighter.config.strings.noBrush = 'Can\'t find brush for: ';
SyntaxHighlighter.config.strings.brushNotHtmlScript = 'Brush wasn\'t configured for html-script option: ';
SyntaxHighlighter.defaults['pad-line-numbers'] = false;
SyntaxHighlighter.defaults['toolbar'] = false;
SyntaxHighlighter.all();
</script>
<link rel='stylesheet' id='all-css-0' href='https://s1.wp.com/wp-content/mu-plugins/carousel/jetpack-carousel.css?m=1431128867g' type='text/css' media='all' />
<!--[if lte IE 8]>
<link rel='stylesheet' id='jetpack-carousel-ie8fix-css' href='http://s1.wp.com/wp-content/mu-plugins/carousel/jetpack-carousel-ie8fix.css?m=1412618825g&#038;ver=20121024' type='text/css' media='all' />
<![endif]-->
<link rel='stylesheet' id='all-css-2' href='https://s2.wp.com/wp-content/mu-plugins/tiled-gallery/tiled-gallery.css?m=1401143454g' type='text/css' media='all' />
<script type='text/javascript'>
/* <![CDATA[ */
var jetpackCarouselStrings = {"widths":[370,700,1000,1200,1400,2000],"is_logged_in":"","lang":"en","ajaxurl":"http:\/\/iosdevblog.com\/wp-admin\/admin-ajax.php","nonce":"21739de756","display_exif":"1","display_geo":"1","background_color":"black","comment":"Comment","post_comment":"Post Comment","write_comment":"Write a Comment...","loading_comments":"Loading Comments...","download_original":"View full size <span class=\"photo-size\">{0}<span class=\"photo-size-times\">\u00d7<\/span>{1}<\/span>","no_comment_text":"Please be sure to submit some text with your comment.","no_comment_email":"Please provide an email address to comment.","no_comment_author":"Please provide your name to comment.","comment_post_error":"Sorry, but there was an error posting your comment. Please try again later.","comment_approved":"Your comment was approved.","comment_unapproved":"Your comment is in moderation.","camera":"Camera","aperture":"Aperture","shutter_speed":"Shutter Speed","focal_length":"Focal Length","comment_registration":"0","require_name_email":"1","login_url":"https:\/\/plusangel.wordpress.com\/wp-login.php?redirect_to=http%3A%2F%2Fiosdevblog.com%2F2013%2F07%2F24%2Fnsfetchedresultscontroller-cheat-sheet%2F","local_comments_commenting_as":"<fieldset><label for=\"email\">Email (Required)<\/label> <input type=\"text\" name=\"email\" class=\"jp-carousel-comment-form-field jp-carousel-comment-form-text-field\" id=\"jp-carousel-comment-form-email-field\" \/><\/fieldset><fieldset><label for=\"author\">Name (Required)<\/label> <input type=\"text\" name=\"author\" class=\"jp-carousel-comment-form-field jp-carousel-comment-form-text-field\" id=\"jp-carousel-comment-form-author-field\" \/><\/fieldset><fieldset><label for=\"url\">Website<\/label> <input type=\"text\" name=\"url\" class=\"jp-carousel-comment-form-field jp-carousel-comment-form-text-field\" id=\"jp-carousel-comment-form-url-field\" \/><\/fieldset>","reblog":"Reblog","reblogged":"Reblogged","reblog_add_thoughts":"Add your thoughts here... (optional)","reblogging":"Reblogging...","post_reblog":"Post Reblog","stats_query_args":"blog=23505840&v=wpcom&tz=2&user_id=0&subd=plusangel","is_public":"1"};
var jetpackCarouselStrings = {"widths":[370,700,1000,1200,1400,2000],"is_logged_in":"","lang":"en","ajaxurl":"http:\/\/iosdevblog.com\/wp-admin\/admin-ajax.php","nonce":"21739de756","display_exif":"1","display_geo":"1","background_color":"black","comment":"Comment","post_comment":"Post Comment","write_comment":"Write a Comment...","loading_comments":"Loading Comments...","download_original":"View full size <span class=\"photo-size\">{0}<span class=\"photo-size-times\">\u00d7<\/span>{1}<\/span>","no_comment_text":"Please be sure to submit some text with your comment.","no_comment_email":"Please provide an email address to comment.","no_comment_author":"Please provide your name to comment.","comment_post_error":"Sorry, but there was an error posting your comment. Please try again later.","comment_approved":"Your comment was approved.","comment_unapproved":"Your comment is in moderation.","camera":"Camera","aperture":"Aperture","shutter_speed":"Shutter Speed","focal_length":"Focal Length","comment_registration":"0","require_name_email":"1","login_url":"https:\/\/plusangel.wordpress.com\/wp-login.php?redirect_to=http%3A%2F%2Fiosdevblog.com%2F2013%2F07%2F24%2Fnsfetchedresultscontroller-cheat-sheet%2F","local_comments_commenting_as":"<fieldset><label for=\"email\">Email (Required)<\/label> <input type=\"text\" name=\"email\" class=\"jp-carousel-comment-form-field jp-carousel-comment-form-text-field\" id=\"jp-carousel-comment-form-email-field\" \/><\/fieldset><fieldset><label for=\"author\">Name (Required)<\/label> <input type=\"text\" name=\"author\" class=\"jp-carousel-comment-form-field jp-carousel-comment-form-text-field\" id=\"jp-carousel-comment-form-author-field\" \/><\/fieldset><fieldset><label for=\"url\">Website<\/label> <input type=\"text\" name=\"url\" class=\"jp-carousel-comment-form-field jp-carousel-comment-form-text-field\" id=\"jp-carousel-comment-form-url-field\" \/><\/fieldset>","reblog":"Reblog","reblogged":"Reblogged","reblog_add_thoughts":"Add your thoughts here... (optional)","reblogging":"Reblogging...","post_reblog":"Post Reblog","stats_query_args":"blog=23505840&v=wpcom&tz=2&user_id=0&subd=plusangel","is_public":"1"};
/* ]]> */
</script>
<script type='text/javascript' src='https://s0.wp.com/_static/??-eJyNj8EOgkAMRH/ItUHFcDF+C5SudoHdDe2C/r1IhBgOxtu0fTOZwhgNBq/kFZxATQMjxcfeyQ6+Tl0ysU039gLsLXvW5yq2rN6pI4GYKrCMygO9kz/yP1gajqZl3xgbMImxvDZij22qJ8sbG22oHKFuU5euA9cUoBQhnQ3zHHsS+fEgln1IQi040lhiY5bF5Ll2l+x0zIs8K84H9wJDH3Yl'></script>
<script type='text/javascript' src='http://platform.twitter.com/widgets.js?ver=20111117'></script>
<script type='text/javascript'>
/* <![CDATA[ */
var sharing_js_options = {"lang":"en","counts":"1"};
/* ]]> */
</script>
<script type='text/javascript' src='https://s1.wp.com/_static/??-eJyVzbsSgkAMheEXMsYLaOX4LAsb12AIO9kA49tLY2EDY3XmL745OGdoB3VSx36ELGNiLegzu5NBI6F9NWwRMhMqTWSkkTXtu7LDf2zediwUIQURsvdvrag8FIeHBDYsz2DLxXcXdO9vx+pcHerLqb52H5XlV+s='></script>
<script type="text/javascript">
// <![CDATA[
(function() {
try{
if ( window.external &&'msIsSiteMode' in window.external) {
if (window.external.msIsSiteMode()) {
var jl = document.createElement('script');
jl.type='text/javascript';
jl.async=true;
jl.src='/wp-content/plugins/ie-sitemode/custom-jumplist.php';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(jl, s);
}
}
}catch(e){}
})();
// ]]>
</script><script type="text/javascript">
jQuery.extend( infiniteScroll.settings.scripts, ["jquery","jquery-core","jquery-migrate","mobile-useragent-info","postmessage","jquery_inview","jetpack_resize","loggedout-subscribe","spin","jquery.spin","grofiles-cards","wpgroho","syntaxhighlighter-core","syntaxhighlighter-brush-objc","devicepx","the-neverending-homepage","fictive-script","fictive-skip-link-focus-fix","swfobject","videopress","jetpack-carousel","twitter-widgets","twitter-widgets-infinity","twitter-widgets-pending","tiled-gallery","sharing-js"] );
jQuery.extend( infiniteScroll.settings.styles, ["jetpack_likes","loggedout-subscribe","the-neverending-homepage","wpcom-core-compat-playlist-styles","mp6hacks","wpcom-bbpress2-staff-css","fictive-style","genericons","fictive-wpcom","noticons","geo-location-flair","reblogging","a8c-global-print","sharedaddy","h4-global","fictive-open-sans","fictive-bitter","jetpack-carousel","tiled-gallery","jetpack-carousel-ie8fix"] );
</script><script src="//stats.wp.com/w.js?47" type="text/javascript" async defer></script>
<script type="text/javascript">
_tkq = window._tkq || [];
_stq = window._stq || [];
_tkq.push(['storeContext', {'blog_id':'23505840','blog_tz':'2','user_lang':'en','blog_lang':'en','user_id':'0'}]);
_stq.push(['view', {'blog':'23505840','v':'wpcom','tz':'2','user_id':'0','subd':'plusangel'}]);
_stq.push(['extra', {'crypt':'UE40eW5QN0p8M2Y/RE1lYixwbDJzR2UxfERBOWN1WEZPJjlNT1B8Sz9dMlkld0QtMGQ2bUFYbC5Rbk9iT2lUSS1wMitQWTktekl+QyZPJml2MWd+djBqQk9aNE9DREo3P35Wai5WRTV8STNLTFU9M0s/S0F8OFtzUk5yZTh4P00xZ0VLVlE4VmF+ZFpbcS14THJ1c2d0N0VBXzFwLlkuNE9vT1llNS4wNk56V1VIczRnWSVVaHRiLVJ+eVZ+SkF0NmJVPS9KUzdYVXg1MWtYXUhwd11UamFHK2J6NSY2TDA5ekJueWI9YVIxTGM3dDI1TkFXOTVpPWFQLGIzeXxBRDFpJUZFaFFRdHFhWyViUXlncG9fOXlHb18xQjl5UFFZM1tfOWw2bTBhTF1iVW5HdEtfb2IyV29NNHxVaFZFdA=='}]);
_stq.push([ 'clickTrackerInit', '23505840', '0' ]);
</script>
<noscript><img src="http://pixel.wp.com/b.gif?v=noscript" style="height:0px;width:0px;overflow:hidden" alt="" /></noscript>
<script>
if ( 'object' === typeof wpcom_mobile_user_agent_info ) {
wpcom_mobile_user_agent_info.init();
var mobileStatsQueryString = "";
if( false !== wpcom_mobile_user_agent_info.matchedPlatformName )
mobileStatsQueryString += "&x_" + 'mobile_platforms' + '=' + wpcom_mobile_user_agent_info.matchedPlatformName;
if( false !== wpcom_mobile_user_agent_info.matchedUserAgentName )
mobileStatsQueryString += "&x_" + 'mobile_devices' + '=' + wpcom_mobile_user_agent_info.matchedUserAgentName;
if( wpcom_mobile_user_agent_info.isIPad() )
mobileStatsQueryString += "&x_" + 'ipad_views' + '=' + 'views';
if( "" != mobileStatsQueryString ) {
new Image().src = document.location.protocol + '//pixel.wp.com/g.gif?v=wpcom-no-pv' + mobileStatsQueryString + '&baba=' + Math.random();
}
}
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment