<?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>Anders Färdigh &#187; coredata</title>
	<atom:link href="http://www.andersfardigh.com/tag/coredata/feed" rel="self" type="application/rss+xml" />
	<link>http://www.andersfardigh.com</link>
	<description>Creative / Technical Director Monterosa Singapore Loves Apps Innovation Internet Mobile Develops iOS Serverside Design UI User Experience And Usability</description>
	<lastBuildDate>Sun, 06 Nov 2011 13:52:50 +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>Override på en Coredata-objekt setter</title>
		<link>http://www.andersfardigh.com/override-pa-en-coredata-objekt-setter</link>
		<comments>http://www.andersfardigh.com/override-pa-en-coredata-objekt-setter#comments</comments>
		<pubDate>Fri, 14 May 2010 09:31:33 +0000</pubDate>
		<dc:creator>anders</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[coredata]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.andersfardigh.com/?p=283</guid>
		<description><![CDATA[Om du skapat ett Coredata-objekt med en uppsättning attribut och automat-genererat en klass kan det hända att du vill ändra en set-funktion. I mitt fall ville jag exempelvis nyligen uppdatera &#8220;tid för senaste updatering&#8221; samtidigt som jag favorit-markerade ett objekt.
I och med att alla Coredata-attribut är @dynamic kan du inte sätta värden som om det [...]]]></description>
			<content:encoded><![CDATA[<p>Om du skapat ett Coredata-objekt med en uppsättning attribut och automat-genererat en klass kan det hända att du vill ändra en set-funktion. I mitt fall ville jag exempelvis nyligen uppdatera &#8220;tid för senaste updatering&#8221; samtidigt som jag favorit-markerade ett objekt.</p>
<p>I och med att alla Coredata-attribut är @dynamic kan du inte sätta värden som om det vore en vanlig @property utan du använder dig av <a href="http://developer.apple.com/mac/library/documentation/cocoa/conceptual/KeyValueCoding/Concepts/BasicPrinciples.html" target="_blank">Key Value Coding</a>:</p>
<p style="font: normal normal normal 11px/normal Menlo; margin: 0px;">-(<span style="color: #c22a9c;">void</span>) setFavourite:(<span style="color: #753ea3;">NSNumber</span> *) newFav {</p>
<p style="font: normal normal normal 11px/normal Menlo; min-height: 13px; margin: 0px;">
<p style="font: normal normal normal 11px/normal Menlo; color: #411f7c; margin: 0px;"><span style="color: #000000;"><span style="white-space: pre;"> </span>[</span><span style="color: #c22a9c;">self</span><span style="color: #000000;"> </span>willChangeValueForKey<span style="color: #000000;">:</span><span style="color: #d92823;">@"favourite"</span><span style="color: #000000;">];</span></p>
<p style="font: normal normal normal 11px/normal Menlo; color: #411f7c; margin: 0px;"><span style="color: #000000;"><span style="white-space: pre;"> </span>[</span><span style="color: #c22a9c;">self</span><span style="color: #000000;"> </span>setPrimitiveValue<span style="color: #000000;">:newFav </span>forKey<span style="color: #000000;">:</span><span style="color: #d92823;">@"favourite"</span><span style="color: #000000;">];</span></p>
<p style="font: normal normal normal 11px/normal Menlo; color: #411f7c; margin: 0px;"><span style="color: #000000;"><span style="white-space: pre;"> </span>[</span><span style="color: #c22a9c;">self</span><span style="color: #000000;"> </span>didChangeValueForKey<span style="color: #000000;">:</span><span style="color: #d92823;">@"favourite"</span><span style="color: #000000;">];</span></p>
<p style="font: normal normal normal 11px/normal Menlo; min-height: 13px; margin: 0px;">
<p style="font: normal normal normal 11px/normal Menlo; color: #411f7c; margin: 0px;"><span style="color: #000000;"><span style="white-space: pre;"> </span>[</span><span style="color: #c22a9c;">self</span><span style="color: #000000;"> </span>timestamp<span style="color: #000000;">];</span></p>
<p style="font: normal normal normal 11px/normal Menlo; min-height: 13px; margin: 0px;"><span style="white-space: pre;"> </span></p>
<p style="font: normal normal normal 11px/normal Menlo; margin: 0px;">}</p>
<p>Det viktiga här är, för det första, att du använder <strong>willChangeValueForKey</strong> och <strong>didChangeValueForKey</strong>. Sen kan du använda <strong>setValue: forKey:</strong> vilket jag fått att fungera för NSString-attribut, men inte för NSNumber &#8211; så använd <strong>setPrimitiveValue: forKey:</strong> istället. Vad jag förstått är det generellt att föredra.</p>
<p>Då vi ändå är inne på key values så tänkte jag tipsa om key-paths. Letade rätt på en <a href="http://probablyinteractive.com/2009/2/13/keypaths.html" target="_blank">bloggpost som visar lite saker du kan använda det till</a> &#8211; exempelvis smidigt söka igenom en NSArray eller NSDictionary.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andersfardigh.com/override-pa-en-coredata-objekt-setter/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

