<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Vira's blog &#187; cocoa</title>
	<atom:link href="http://ivira.name/blog/category/cocoa/feed/" rel="self" type="application/rss+xml" />
	<link>http://ivira.name/blog</link>
	<description>Blog about things that I love</description>
	<lastBuildDate>Wed, 12 May 2010 07:55:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Cocoa Tip: Filtering NSArray using NSPredicate</title>
		<link>http://ivira.name/blog/2010/01/13/cocoa-tip-filtering-nsarray-using-nspredicate/</link>
		<comments>http://ivira.name/blog/2010/01/13/cocoa-tip-filtering-nsarray-using-nspredicate/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 22:13:35 +0000</pubDate>
		<dc:creator>vira</dc:creator>
				<category><![CDATA[Computer science]]></category>
		<category><![CDATA[cocoa]]></category>

		<guid isPermaLink="false">http://ivira.name/blog/?p=160</guid>
		<description><![CDATA[Today I had a small task in one of my projects &#8211; to get subset of elements from NSArray. I&#8217;ve already started writing all this NSEnumerator-s stuff (need to support 10.4) when I remembered about NSPredicator. So, instead of iterating over an array and finding elements that satisfy some condition and adding them to some [...]]]></description>
			<content:encoded><![CDATA[<p>Today I had a small task in one of my projects &#8211; to get subset of elements from NSArray. I&#8217;ve already started writing all this NSEnumerator-s stuff (need to support 10.4) when I remembered about NSPredicator. So, instead of iterating over an array and finding elements that satisfy some condition and adding them to some output array you just need to create predicate and filter your input array with it. Here is the sample code:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="objc">NSPredicate <span style="color: #002200;">*</span>predicate <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>NSPredicate predicateWithFormat<span style="color: #002200;">:</span>@<span style="color: #666666;">&quot;storeState == 1&quot;</span><span style="color: #002200;">&#93;</span>;
<span style="color: #0000ff;">NSArray</span>  <span style="color: #002200;">*</span>outputArray <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>inputArray filteredArrayUsingPredicate<span style="color: #002200;">:</span>predicate<span style="color: #002200;">&#93;</span>;</pre></td></tr></table></div>

<p>Predicates language seems to be very powerful and simple. But I can&#8217;t tell you anything about performance, need to investigate.</p>
<p>Further reading: <a href="http://developer.apple.com/documentation/Cocoa/Conceptual/Predicates/index.html">Apple Predicates Programming Guide</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ivira.name/blog/2010/01/13/cocoa-tip-filtering-nsarray-using-nspredicate/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
