<?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></title>
	<atom:link href="http://john-ahrens.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://john-ahrens.com</link>
	<description></description>
	<lastBuildDate>Sat, 20 Aug 2011 22:17:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Working Again!</title>
		<link>http://john-ahrens.com/2011/08/20/working-again/</link>
		<comments>http://john-ahrens.com/2011/08/20/working-again/#comments</comments>
		<pubDate>Sat, 20 Aug 2011 22:16:59 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[TCS]]></category>
		<category><![CDATA[911]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://john-ahrens.com/?p=237</guid>
		<description><![CDATA[After six weeks of no income, I started work this week at TeleCommunication Systems (TCS). I&#8217;m assigned to the team working on next generation 911, also called NG911. Our existing system was designed when land line phones dominated before cell &#8230; <a class="more-link" href="http://john-ahrens.com/2011/08/20/working-again/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After six weeks of no income, I started work this week at <a href="http://www.telecomsys.com/" target="_blank">TeleCommunication Systems (TCS)</a>. I&#8217;m assigned to the team working on <a href="http://www.telecomsys.com/products/public-safety/NG9-1-1.aspx" target="_blank">next generation 911</a>, also called <a href="http://www.nena.org/ng911-project" target="_blank">NG911</a>.</p>
<p>Our existing system was designed when land line phones dominated before cell phones were even heard of, at least to the general public.</p>
<p>In the intervening years, cell phone service, and later Voice Over IP (VOIP) or internet phones have been scabbed into the system with some hacks. Good hacks, but they are still hacks. The Next Generation system that the <a href="http://www.nena.org/" target="_blank">National Emergency Number Association (NENA)</a> has defined will provide a more solid and extensible base for handling the existing system and future growth, including text messages, photos, videos and other sources of information that our mobile communications make possible that can help the emergency responders be better prepared for the situation at hand.</p>
<p><!-- Technorati Tags Start --></p>
<p>Technorati Tags:<br />
<a href="http://technorati.com/tag/Development" rel="tag">Development</a>, <a href="http://technorati.com/tag/TCS" rel="tag">TCS</a>
</p>
<p><!-- Technorati Tags End --></p>
]]></content:encoded>
			<wfw:commentRss>http://john-ahrens.com/2011/08/20/working-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bug in Core Data?</title>
		<link>http://john-ahrens.com/2011/07/21/bug-in-core-data/</link>
		<comments>http://john-ahrens.com/2011/07/21/bug-in-core-data/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 20:09:58 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Core Data]]></category>

		<guid isPermaLink="false">http://john-ahrens.com/?p=235</guid>
		<description><![CDATA[After a great deal of searching around and playing with alternatives, I&#8217;ve figured out that if I insert new records into the SoundChurch store one record at a time, everything works. If I allow Core Data to attempt to insert &#8230; <a class="more-link" href="http://john-ahrens.com/2011/07/21/bug-in-core-data/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After a great deal of searching around and playing with alternatives, I&#8217;ve figured out that if I insert new records into the SoundChurch store one record at a time, everything works. If I allow Core Data to attempt to insert multiple records at once, it throws the error discussed in the <a href="http://john-ahrens.com/2011/07/11/coredata-error-saving-data/" target="_blank">previous post</a>.</p>
<p>Could I have discovered a bug in <a href="http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/cdProgrammingGuide.html" target="_blank">Core Data</a>?</p>
<p><!-- Technorati Tags Start --></p>
<p>Technorati Tags:<br />
<a href="http://technorati.com/tag/iPhone" rel="tag">iPhone</a>, <a href="http://technorati.com/tag/Core%20Data" rel="tag">Core Data</a>, <a href="http://technorati.com/tag/iOS" rel="tag">iOS</a>
</p>
<p><!-- Technorati Tags End --></p>
]]></content:encoded>
			<wfw:commentRss>http://john-ahrens.com/2011/07/21/bug-in-core-data/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CoreData error saving data</title>
		<link>http://john-ahrens.com/2011/07/11/coredata-error-saving-data/</link>
		<comments>http://john-ahrens.com/2011/07/11/coredata-error-saving-data/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 02:49:54 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Sound Church]]></category>
		<category><![CDATA[Core Data]]></category>

		<guid isPermaLink="false">http://john-ahrens.com/?p=233</guid>
		<description><![CDATA[As I continue to attempt to improve the operation of the Sound Church application, I&#8217;ve run into issues with Core Data returning an error when I attempt to save an Item. The error: 2011-07-09 16:57:36.670 Sound-Church[12292:207] Unresolved error Error Domain=NSCocoaErrorDomain &#8230; <a class="more-link" href="http://john-ahrens.com/2011/07/11/coredata-error-saving-data/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As I continue to attempt to improve the operation of the Sound Church application, I&#8217;ve run into issues with Core Data returning an error when I attempt to save an Item.</p>
<p>The error:</p>
<blockquote><p>2011-07-09 16:57:36.670 Sound-Church[12292:207] Unresolved error Error Domain=NSCocoaErrorDomain Code=256 &#8220;The operation couldn’t be completed. (Cocoa error 256.)&#8221; UserInfo=0x4d62010 {NSFilePath=/Users/john/Library/Application Support/iPhone Simulator/4.3.2/Applications/BF78B117-48CA-48C7-A61E-29A452E2824A/Documents/Sound_Church.sqlite, NSUnderlyingException=error during SQL execution : constraint failed}, {<br />
    NSFilePath = &#8220;/Users/john/Library/Application Support/iPhone Simulator/4.3.2/Applications/BF78B117-48CA-48C7-A61E-29A452E2824A/Documents/Sound_Church.sqlite&#8221;;<br />
    NSUnderlyingException = &#8220;error during SQL execution : constraint failed&#8221;;<br />
}
</p></blockquote>
<p>I see the error from this code:<br/><br />
<code><br />
- (void)saveContext<br/><br />
{<br/><br />
&nbsp;&nbsp;    NSLog(@"Entering saveContext");<br/></p>
<p>&nbsp;&nbsp;    NSError *error = nil;<br/><br />
&nbsp;&nbsp;    NSManagedObjectContext *managedObjectContext = self.managedObjectContext;<br/><br />
&nbsp;&nbsp;    if (managedObjectContext != nil)<br/><br />
&nbsp;&nbsp;    {<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;        if ([managedObjectContext hasChanges] &#038;&#038; ![managedObjectContext save:&#038;error])<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;        {<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;            NSLog(@"Unresolved error %@, %@", error, [error userInfo]);<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;            abort();<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;        } <br/><br />
&nbsp;&nbsp;    }<br/><br />
}<br/><br />
</code></p>
<p>In searching the web, I found <a href="http://blog.beefyapps.com/2010/03/coredata-sqlite3-database-constraint-failed-error/" target="_blank">this</a> article that talks about that very message, but it doesn&#8217;t seem to apply as apparently the writer is directly accessing the sqlite database, which I don&#8217;t do.</p>
<p>I also found <a href="http://stackoverflow.com/questions/6157634/ios-coredata-update-entity-object" target="_blank">this</a> question and answer, which suggests a possible problem, but again, I don&#8217;t see it applying to me, as I use a NSFetchedResultsController to populate the UITableView and otherwise only fetch results to verify that the new Item is unique.</p>
<p>The code where I fetch results to check for an error:<br/><br />
<code>- (void)parser:(NSXMLParser *)parser <br/><br />
 didEndElement:(NSString *)elementName<br/><br />
  namespaceURI:(NSString *)namespaceURI<br/><br />
 qualifiedName:(NSString *)qName <br/><br />
{    <br/><br />
&nbsp;&nbsp;    if (!self.currentItemObject)<br/><br />
&nbsp;&nbsp;    {<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;        // We don't want to bother attempting to process all the header info.<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;        return;<br/><br />
&nbsp;&nbsp;    }<br/><br />
    <br/><br />
&nbsp;&nbsp;    if ([elementName isEqualToString: kItemElementName]) <br/><br />
&nbsp;&nbsp;    {<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;        NSPredicate *predicate = [NSPredicate predicateWithFormat: @"guid == \"%@\"", currentItemObject.guid];<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;        NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;        [request setPredicate: predicate];<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;        NSEntityDescription *entity = [NSEntityDescription entityForName:@"Item" <br/><br />
                                                  &nbsp;&nbsp;&nbsp;&nbsp;inManagedObjectContext:self.context];<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;        [request setEntity: entity];<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;        NSError *error = [[[NSError alloc] init] autorelease];<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;        NSMutableArray *items = [[context executeFetchRequest: request error: &#038;error] mutableCopy];<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;        if (!items)<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;        {<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;            // TODO: Need to do better error handling.<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;            NSLog(@"Error fetching items. %@", [error localizedDescription]);<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;            [items release];<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;            return;<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;        }<br/><br />
        <br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;        if (0 < [items count]) <br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;        {<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;            // This is a duplicate element, we don't want to save it.<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;            [items release];<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;            return;<br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;        }<br/><br />
        <br/><br />
&nbsp;&nbsp;&nbsp;&nbsp;        [items release];<br/><br />
...<br />
</code></p>
<p>At this point, I haven&#8217;t resolved this issue, so I&#8217;m still looking for a solution.</p>
<p>In the process of digging through the code, I did stumble upon another problem. I found that the title of the podcasts seemed to always be the same as the summary. So I did some digging, and found that, in fact, I was not copying the data elements into the NSManagedObject. Dumb.. Since the objects (NSStrings in this case) are passed as pointers, when I would write the next string into the same NSMutableString, it overwrote the previous entry, so all elements of an object became the last thing I entered. </p>
<p>So that&#8217;s solved, but I&#8217;m going to have to do some more digging into the sqlite table to figure out the problem with the error.</p>
]]></content:encoded>
			<wfw:commentRss>http://john-ahrens.com/2011/07/11/coredata-error-saving-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sound Church Progress</title>
		<link>http://john-ahrens.com/2011/07/06/sound-church-progress/</link>
		<comments>http://john-ahrens.com/2011/07/06/sound-church-progress/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 01:09:27 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Sound Church]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[Objective-C]]></category>

		<guid isPermaLink="false">http://john-ahrens.com/?p=231</guid>
		<description><![CDATA[I&#8217;m now getting the podcast data to load into the CoreData store, but still getting a BadAccess Exception that I haven&#8217;t tracked down. Still looking to find out where I&#8217;m accessing something after it&#8217;s deleted. I have an image of &#8230; <a class="more-link" href="http://john-ahrens.com/2011/07/06/sound-church-progress/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m now getting the podcast data to load into the CoreData store, but still getting a BadAccess Exception that I haven&#8217;t tracked down. Still looking to find out where I&#8217;m accessing something after it&#8217;s deleted.</p>
<p>I have an image of the screen. Not really exciting, especially since it seems to be loading the one item multiple times, and that one item is the lone video in the package.<br />
<img src="http://john-ahrens.com/wp-content/uploads/2011/07/IMG_0007.png" alt="Sound Church screen with the lone video in every cell." border="0" width="400" height="600" /></p>
<p>I&#8217;m thinking I&#8217;ll break the connection I have between the Channel object and the Item objects. The connection is somewhat arbitrary, and I&#8217;m not even sure I need the channel, but I have it for now. I certainly don&#8217;t need the connection to the channel.</p>
<p>Latest code has been uploaded to <a href="https://github.com/john146/Sound-Church" target="_blank">github</a> (github account required), for anyone who&#8217;s interested to look at it.</p>
]]></content:encoded>
			<wfw:commentRss>http://john-ahrens.com/2011/07/06/sound-church-progress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NSManagedObject</title>
		<link>http://john-ahrens.com/2011/07/03/nsmanagedobject/</link>
		<comments>http://john-ahrens.com/2011/07/03/nsmanagedobject/#comments</comments>
		<pubDate>Sun, 03 Jul 2011 00:19:36 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Sound Church]]></category>
		<category><![CDATA[XCode]]></category>
		<category><![CDATA[NSManagedObject]]></category>

		<guid isPermaLink="false">http://john-ahrens.com/?p=226</guid>
		<description><![CDATA[I&#8217;ve been discovering the intricacies of managing NSManagedObjects. These are the objects that you as a developer have to use when developing with Core Data. Because of the level of control over the lifecycle of the objects that Core Data &#8230; <a class="more-link" href="http://john-ahrens.com/2011/07/03/nsmanagedobject/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been discovering the intricacies of managing <a href="http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/CoreDataFramework/Classes/NSManagedObject_Class/Reference/NSManagedObject.html" target="_blank">NSManagedObjects</a>. These are the objects that you as a developer have to use when developing with <a href="http://en.wikipedia.org/wiki/Core_Data" target="_blank">Core Data</a>. Because of the level of control over the lifecycle of the objects that Core Data takes, the normal <code>-(id)init;</code> and <code>-(void)dealloc;</code> methods should not be overridden in a subclass of <code>NSManagedObject</code>.</p>
<p>Instead, you need to use the <a href="http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/CoreDataFramework/Classes/NSEntityDescription_Class/NSEntityDescription.html" target="_blank">NSEntityDescription</a> class method<br/><br />
<code><br />
+ (id)insertNewObjectForEntityForName:(NSString *)entityName<br/><br />
inManagedObjectContext:(NSManagedObjectContext *)context;<br />
</code><br/><br />
This method returns a <code>NSManagedObject</code> of the type noted by the <code>entityName</code> parameter.</p>
<p>While dealing with all this stuff. I realized I don&#8217;t understand all the in&#8217;s and out&#8217;s of how the model creates objects. I had the model backwards, as the one Channel contains many Items, but the model reversed that, so I had to pull some hackery to get what I want. </p>
<p>One little key, if you modify the model, you&#8217;ll have to delete the files in ~/Library/Application Support/iPhone Simulator/&lt;version&gt;/Applications/. I deleted everything in there and it was happy again.</p>
<p>At this point, I&#8217;m getting data into the model, and that&#8217;s good enough for now. I still need to deal with new vs. existing entries, but that&#8217;s for another time. It&#8217;s now time to move on to the RootViewController and start displaying the data available.</p>
]]></content:encoded>
			<wfw:commentRss>http://john-ahrens.com/2011/07/03/nsmanagedobject/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NSXMLParser initWithContentsOfURL:</title>
		<link>http://john-ahrens.com/2011/07/02/nsxmlparser-initwithcontentsofurl/</link>
		<comments>http://john-ahrens.com/2011/07/02/nsxmlparser-initwithcontentsofurl/#comments</comments>
		<pubDate>Sat, 02 Jul 2011 20:34:55 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Sound Church]]></category>
		<category><![CDATA[XCode]]></category>
		<category><![CDATA[Core Data]]></category>
		<category><![CDATA[XML Parsing]]></category>

		<guid isPermaLink="false">http://john-ahrens.com/?p=224</guid>
		<description><![CDATA[In digging around looking at errors I was getting with the NSXMLParser when using the - (id)initWithData: (NSData *)data; initializer, I discovered the - (id)initWithContentsOfURL: (NSURL *)url; initializer. This initializer handles all the connection logic without me having to deal &#8230; <a class="more-link" href="http://john-ahrens.com/2011/07/02/nsxmlparser-initwithcontentsofurl/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In digging around looking at errors I was getting with the NSXMLParser when using the <brf/><br />
<code><br />
- (id)initWithData: (NSData *)data;<br />
</code><br/><br />
initializer, I discovered the <br/><br />
<code><br />
- (id)initWithContentsOfURL: (NSURL *)url;<br />
</code><br/><br />
initializer. This initializer handles all the connection logic without me having to deal with it. Since the reality of this application is, if you can&#8217;t download the data from the server, you can still use the app with data that you&#8217;ve downloaded previously, there&#8217;s no need for me to maintain the downloading separately. </p>
<p>I&#8217;m no longer using the RSSDownloader class, or the RSSDownloaderDelegate protocol. Since the only other case of downloading is to get the audio file for a specific message, I probably don&#8217;t need the abstraction of moving the download logic to a separate controller class. That, however, is an issue for another time.</p>
]]></content:encoded>
			<wfw:commentRss>http://john-ahrens.com/2011/07/02/nsxmlparser-initwithcontentsofurl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sound Church</title>
		<link>http://john-ahrens.com/2011/07/01/sound-church/</link>
		<comments>http://john-ahrens.com/2011/07/01/sound-church/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 23:21:33 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[iOS]]></category>

		<guid isPermaLink="false">http://john-ahrens.com/?p=222</guid>
		<description><![CDATA[I&#8217;ve been working on the Sound Church application between interviews and phone calls since I&#8217;m no longer employed by Point Inside. The app is coming along. I have a class, RSSDownloader, that implements the NSURLConnection protocol. It also has a &#8230; <a class="more-link" href="http://john-ahrens.com/2011/07/01/sound-church/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on the <a href="https://github.com/john146/Sound-Church" target="_blank">Sound Church</a> application between interviews and phone calls since I&#8217;m no longer employed by <a href="http://pointinside.com/#" target="_blank">Point Inside</a>. The app is coming along.</p>
<p>I have a class, RSSDownloader, that implements the NSURLConnection protocol. It also has a delegate that handles the output, providing a bit of abstraction for the connections. When the application launches, the downloader will download the xml file from the RSS feed server and parse it. Then when the user wants to listen to a podcast, that podcast needs to be downloaded, so the RSSDownloader will be used again.</p>
<p>I&#8217;m currently working on the parser, which parses the xml file into the required objects. Currently it&#8217;s failing on the title of the Channel object. In the current data definition, the channel contains the data that&#8217;s part of the RSS header. It contains a list of Items, each item being a separate podcast.</p>
<p>I&#8217;d do a screenshot of the data model, but Xcode 4 seems to spread the model out over more than one screen, even though there&#8217;s only two entities, and I can&#8217;t seem to figure out how to move them closer together, or if it&#8217;s possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://john-ahrens.com/2011/07/01/sound-church/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OCMock for iPhone</title>
		<link>http://john-ahrens.com/2011/07/01/ocmock-for-iphone/</link>
		<comments>http://john-ahrens.com/2011/07/01/ocmock-for-iphone/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 23:17:08 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Sound Church]]></category>
		<category><![CDATA[XCode]]></category>
		<category><![CDATA[OCMock]]></category>

		<guid isPermaLink="false">http://john-ahrens.com/?p=220</guid>
		<description><![CDATA[Thinking about using OCMock with my Sound-Church project. First off, getting it to build is a challenge, particularly to include the library with the version running on the phone. The solution to that problem is with the linker settings. Notice &#8230; <a class="more-link" href="http://john-ahrens.com/2011/07/01/ocmock-for-iphone/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Thinking about using <a href="http://www.mulle-kybernetik.com/software/OCMock/" target="_blank">OCMock</a> with my Sound-Church project. First off, getting it to build is a challenge, particularly to include the library with the version running on the phone. The solution to that problem is with the linker settings.</p>
<p><img src="http://john-ahrens.com/wp-content/uploads/2011/07/linker-flags.jpg" alt="Linker flags" border="0" width="600" height="119" /></p>
<p>Notice the -ObjC -all_load flags. Those are required to load a static library, as the dynamic nature of Objective-C makes it not load those libraries.</p>
<p>I&#8217;m still figuring out how to use a fake method with multiple parameters with this tool, however. The available <a href="http://www.mulle-kybernetik.com/software/OCMock/" target="_blank">documentation</a> is a bit light. I did find <a href="http://alexvollmer.com/posts/2010/06/28/making-fun-of-things-with-ocmock/" target="_blank">this post</a>, which is about the best I&#8217;ve found for using OCMock. Nobody describes using OCMock with Xcode 4, however.</p>
]]></content:encoded>
			<wfw:commentRss>http://john-ahrens.com/2011/07/01/ocmock-for-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The managed object model version used to open the persistent store is incompatible with the one that was used to create the persistent store.</title>
		<link>http://john-ahrens.com/2011/05/22/the-managed-object-model-version-used-to-open-the-persistent-store-is-incompatible-with-the-one-that-was-used-to-create-the-persistent-store/</link>
		<comments>http://john-ahrens.com/2011/05/22/the-managed-object-model-version-used-to-open-the-persistent-store-is-incompatible-with-the-one-that-was-used-to-create-the-persistent-store/#comments</comments>
		<pubDate>Sun, 22 May 2011 00:53:17 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[XCode]]></category>
		<category><![CDATA[Core Data]]></category>
		<category><![CDATA[Objective-C]]></category>

		<guid isPermaLink="false">http://john-ahrens.com/?p=217</guid>
		<description><![CDATA[I&#8217;ve been getting this error today when attempting to build my Sound-Church application. Couldn&#8217;t figure it out until I found this post that explained it. For iOS, look in ~/Library/Application Support/iPhone Simulator/ where version is the iOS version you are &#8230; <a class="more-link" href="http://john-ahrens.com/2011/05/22/the-managed-object-model-version-used-to-open-the-persistent-store-is-incompatible-with-the-one-that-was-used-to-create-the-persistent-store/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been getting this error today when attempting to build my Sound-Church application. Couldn&#8217;t figure it out until I found <a href="http://www.matthew-long.com/2007/11/02/the-managed-object-model-version-used-to-open-the-persistent-store-is-incompatible-with-the-one-that-was-used-to-create-the-persistent-store/" target="_blank">this post</a> that explained it.</p>
<p>For iOS, look in ~/Library/Application Support/iPhone Simulator/<version>  where version is the iOS version you are targeting to find the offending files. I just blew away all the sub-folders in that folder to solve my problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://john-ahrens.com/2011/05/22/the-managed-object-model-version-used-to-open-the-persistent-store-is-incompatible-with-the-one-that-was-used-to-create-the-persistent-store/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New website</title>
		<link>http://john-ahrens.com/2011/05/21/new-website/</link>
		<comments>http://john-ahrens.com/2011/05/21/new-website/#comments</comments>
		<pubDate>Sat, 21 May 2011 16:46:33 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[The Web]]></category>
		<category><![CDATA[Website]]></category>

		<guid isPermaLink="false">http://john-ahrens.com/?p=215</guid>
		<description><![CDATA[If you&#8217;re here, you&#8217;ve noticed the revamping of this website, with the blog front and center. I will say more about the reasons soon. In the meantime, enjoy the new site.]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re here, you&#8217;ve noticed the revamping of this website, with the blog front and center. I will say more about the reasons soon. In the meantime, enjoy the new site.</p>
]]></content:encoded>
			<wfw:commentRss>http://john-ahrens.com/2011/05/21/new-website/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

