<?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>Inside RogueSheep &#187; iPhone</title>
	<atom:link href="http://blog.roguesheep.com/category/iphone/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.roguesheep.com</link>
	<description>Behind the scenes with the sheep</description>
	<lastBuildDate>Sun, 15 Jan 2012 20:35:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Macworld 2011 &#8211; Last Call</title>
		<link>http://blog.roguesheep.com/2011/01/26/macworld-2011-last-call/</link>
		<comments>http://blog.roguesheep.com/2011/01/26/macworld-2011-last-call/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 08:25:55 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Postage]]></category>
		<category><![CDATA[RogueSheep]]></category>
		<category><![CDATA[TouchUp]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://blog.roguesheep.com/?p=561</guid>
		<description><![CDATA[Macworld Expo 2011 is fast approaching and we still have a few passes to give away for free admission. If you are an Apple fan and can make it to San Francisco this week, you will not want to miss this event. Last year was a fantastic time. Besides the show floor full of great products, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.macworldexpo.com/">Macworld Expo 2011</a> is fast approaching and we still have a few passes to give away for free admission. If you are an Apple fan and can make it to San Francisco this week, you will not want to miss this event. Last year was a fantastic time. Besides the show floor full of great products, developers and other goodies for all things Apple, the expo played host for a lot of great content and talks. I&#8217;m sure this year won&#8217;t disappoint.</p>

<p>Of course, you will once again find RogueSheep showing off our iOS software including <a href="http://touchup.roguesheep.com">TouchUp for iPad</a>. We&#8217;ll be at <strong>booth 818, kiosk #61</strong> in the Mobile Application Showcase. Last year the Mobile Application Showcase was a huge hit. This year will be the first for iPad apps, so it&#8217;s bound to be even better. We&#8217;d love to see you there, so be sure and stop by to say hello if you are at the expo. We have some great buttons and other fun schwag to give away.</p>

<p>If you would still like a pass to come see the expo show floor for free, just send a quick email to <a href="mailto:macworld2011@roguesheep.com">macworld2011@roguesheep.com </a></p>

<p>Hope to see you there!</p>

<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.roguesheep.com/2011/01/26/macworld-2011-last-call/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SnoGlobe Over 50,000 iAd Requests In 7 Days</title>
		<link>http://blog.roguesheep.com/2010/12/17/snoglobe-50000-iad-requests-in-7-days/</link>
		<comments>http://blog.roguesheep.com/2010/12/17/snoglobe-50000-iad-requests-in-7-days/#comments</comments>
		<pubDate>Fri, 17 Dec 2010 14:27:09 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[RogueSheep]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://blog.roguesheep.com/?p=530</guid>
		<description><![CDATA[A week ago we released a new version of SnoGlobe, one of our RogueSheep apps, and this week I decided to share a little behind the scenes data. SnoGlobe was previously priced at $0.99 and had been languishing in the sea of iOS apps. On a good day we sold 2. For the entire month of [...]]]></description>
			<content:encoded><![CDATA[<p>A week ago we released a new version of <a href="http://itunes.com/app/SnoGlobe">SnoGlobe</a>, one of our RogueSheep <a href="http://apps.roguesheep.com/">apps</a>, and this week I decided to share a little behind the scenes data. SnoGlobe was previously priced at $0.99 and had been languishing in the sea of iOS apps. On a good day we sold 2. For the entire month of November we made $40. We figured we could do better as a free app with ads, and besides, we were itching to take iAds out for a spin.</p>

<p>First, the good news. Putting iAds into an iOS application is as easy as the documentation says it is. And in its first week as a free app with iAds, SnoGlobe had respectable downloads, over 50,000 ad requests, and made 3 times what it made in all of November.</p>

<p>Now for the not so great news. As you’ve probably just done the math in your head, that comes out to $120. That’s more than it was bringing in as a paid app, so we made the right choice. But $120 from 50,000 ad requests must mean an abysmal fill rate. Turns out that’s exactly the issue, but for a completely valid reason: Most of our downloads and over 42,000 of the ad requests are from Turkey, but there are no iAd ads in Turkey yet.</p>

<p>Nonetheless, we are glad we did it, and and I am sure we’ll integrate iAds into future RogueSheep offerings. Without further ado, here’s the iAd data from <a href="http://itunes.com/app/SnoGlobe">SnoGlobe’s</a> first seven days:</p>

<p><a href="http://blog.roguesheep.com/wp-content/uploads/2010/12/SnoGlobe-iAd-Data3.png"><img class="aligncenter size-full wp-image-552" src="http://blog.roguesheep.com/wp-content/uploads/2010/12/SnoGlobe-iAd-Data3.png" alt="" width="638" height="629" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.roguesheep.com/2010/12/17/snoglobe-50000-iad-requests-in-7-days/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>RogueSheep Holiday App News</title>
		<link>http://blog.roguesheep.com/2010/12/10/roguesheep-holiday-app-news/</link>
		<comments>http://blog.roguesheep.com/2010/12/10/roguesheep-holiday-app-news/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 22:25:14 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Postage]]></category>
		<category><![CDATA[RogueSheep]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://blog.roguesheep.com/?p=507</guid>
		<description><![CDATA[Here at RogueSheep we hope you are as excited about the holiday season as we are. With all the running around buying perfect gifts we know you need a break. If you haven&#8217;t already sent your holiday cards we have some great news about two of our iOS apps that should save you some time. [...]]]></description>
			<content:encoded><![CDATA[<p><ins datetime="2010-12-10T22:26:25+00:00"><p>Here at RogueSheep we hope you are as excited about the holiday season as we are. With all the running around buying perfect gifts we know you need a break. If you haven&#8217;t already sent your holiday cards we have some great news about two of our iOS apps that should save you some time. You&#8217;ll be able to re-energize so it will not be a mad-dash on Christmas Eve to fulfill all those wish lists.</p></ins></p>

<div><a href="http://snoglobe.roguesheep.com"><img alt="SnoGlobe Icon" src="https://s3.amazonaws.com/SnoGlobeMedia/SnoGlobeRound64.png" title="SnoGlobe" align="middle" width="64" height="64" /></a>
<h3 style="display:inline;">SnoGlobe &#8211; FREE!</h3></div>

<p>Last year around this time we introduced a new seasonal iPhone application, <a href="http://snoglobe.roguesheep.com">SnoGlobe</a>. If you haven&#8217;t seen it before, SnoGlobe is a faithful reproduction of a traditional holiday snow globe with flakes that react to the motion of your device. You can add a photo from your Photo Library or take a new one right on the spot. SnoGlobe is great for ringing in holiday cheer. We found a lot of folks enjoyed the application and we wanted to spread the joy even further this year.</p>

<p>SnoGlobe 2.0 was released today. This update adds support for iOS 4, cleans up a few minor issues and incorporates Apple&#8217;s new iAd technology. The biggest change though, is that SnoGlobe is now <em><strong>free</strong></em>!</p>

<p>Now there is really no reason to deprive your iPhone or iPod of some solid holiday decor! You can find it in the App Store at <a href="http://itunes.com/app/SnoGlobe">http://itunes.com/app/SnoGlobe</a></p>

<p> </p>

<div><a href="http://postage.roguesheep.com/holiday"><img alt="Holiday Postage Icon" src="https://s3.amazonaws.com/PostageMedia/hologo.png" title="Holiday Postage" align="middle" width="64" height="72" /></a>
<h3 style="display:inline;">Holiday ~ Postage</h3></div>

<p>One app isn&#8217;t enough to contain all the Yule-tide fever in our flock. If you are a fan of our award-winning postcard application, <a href="http://postage.roguesheep.com">Postage</a>, be sure to check out <a href="http://itunes.com/app/HolidayPostage">Holiday ~ Postage</a>. It uses the same virtual postcard engine as Postage, but gives you 10 holiday inspired postcard designs and the interface is dressed-up just perfect for the season. This edition of Postage contains some of our very best designs, so don&#8217;t miss it if you didn&#8217;t grab it last year. You can find Holiday ~ Postage for just $0.99 on the App Store at <a href="http://itunes.com/app/HolidayPostage">http://itunes.com/app/HolidayPostage</a>.</p>

<p> </p>

<p><strong>Happy Holidays</strong></p>

<p>All of us here at RogueSheep hope each one of you has a fantastic holiday and thank you for your support. We look forward to bringing more exciting products and updates to you in the coming year!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.roguesheep.com/2010/12/10/roguesheep-holiday-app-news/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Macworld 2011 Expo passes</title>
		<link>http://blog.roguesheep.com/2010/12/02/free-macworld-2011-expo-passes/</link>
		<comments>http://blog.roguesheep.com/2010/12/02/free-macworld-2011-expo-passes/#comments</comments>
		<pubDate>Fri, 03 Dec 2010 02:41:31 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[RogueSheep]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://blog.roguesheep.com/?p=499</guid>
		<description><![CDATA[Here at RogueSheep we are gearing up to spotlight our passion at Macworld 2011 in San Francisco and we would like you to be there too! Admission to the exhibition floor is normally $25, but we have a number of free passes available on a first come, first serve basis. Expo If you haven&#8217;t been to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.macworldexpo.com"><img style="display: block; margin-left: auto; margin-right: auto;" src="http://blog.roguesheep.com/wp-content/uploads/2010/12/MW11_Medialogo.png" border="0" alt="MW11_Medialogo.png" width="300" height="142" /></a></p>

<p>Here at RogueSheep we are gearing up to spotlight our passion at <a href="http://www.macworldexpo.com">Macworld 2011 in San Francisco</a> and we would like you to be there too! Admission to the exhibition floor is normally $25, but we have a number of <strong><em>free</em></strong> passes available on a first come, first serve basis.</p>

<p><strong>Expo</strong></p>

<p>If you haven&#8217;t been to Macworld yet, this is a great opportunity to come check it out. The expo hall is full of exciting products and applications. You&#8217;ll be surprised at the sheer number of interesting apps, accessories and books you have probably never encountered before that await you on the show floor. It is also great chance to meet and talk to some of your favorite developers and media personalities in the Apple community.</p>

<p><strong>Conference</strong></p>

<p>In addition to the expo, Macworld 2011 hosts a plethora of conference and training sessions for Apple enthusiasts and professionals. This year there will be a full track for IT folks working with Apple products. There is also a user focused conference with sessions on MacOS, content creation, and small business. The early bird discount for conference sessions ends tomorrow, December 3rd, 2011. If you are thinking of attending, be sure and register now!</p>

<p><strong>Free Pass</strong></p>

<p>Getting a free pass from RogueSheep is simple. Just email us at <a href="mailto:macworld2011@roguesheep.com">macworld2011@roguesheep.com</a> and we will get you set up. Hope to see you there!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.roguesheep.com/2010/12/02/free-macworld-2011-expo-passes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scholarly Shepherding</title>
		<link>http://blog.roguesheep.com/2010/09/24/scholarly-shepherding/</link>
		<comments>http://blog.roguesheep.com/2010/09/24/scholarly-shepherding/#comments</comments>
		<pubDate>Sat, 25 Sep 2010 00:01:03 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://blog.roguesheep.com/?p=475</guid>
		<description><![CDATA[Most of the time our little flock is heads down, creating new apps and software solutions. On occasion, though, we do find the time to pursue other activities of interest. One common extracurricular theme of late has been continuing education. UW &#8211; IPhone and Cocoa Development Last year I was fortunate to be given the [...]]]></description>
			<content:encoded><![CDATA[<p>Most of the time our little flock is heads down, creating new apps and software solutions. On occasion, though, we do find the time to pursue other activities of interest. One common extracurricular theme of late has been continuing education.</p>

<p>
</p><p><strong>UW &#8211; IPhone and Cocoa Development</strong></p>
<p>Last year I was fortunate to be given the opportunity to teach Cocoa programming through the University of Washington&#8217;s Professional and Continuing Education department. With help of an <a href="http://www.pce.uw.edu/prog.aspx?id=4074&amp;terms=cocoa">all-star advisory board</a>, we managed to create a very unique three-course program. Students with solid prior programming experience were taught the ins and outs of MacOS and iOS development and earned a handsome certificate after 30 weeks of study across 3 quarters.</p>
<p>We have had a fantastic response to the program. In our first year we filled two separate sections to capacity. Students completing the program have been overwhelmingly positive in their assessment. Several already have apps in the store or have started career changes based on the knowledge they gained. It has also been a great experience for the instructors to grow our own skills and be able to pass some wisdom on to a new breed of Cocoa developers.</p>
<p>Our certificate program is going for another round again this year. Both <a href="http://www.pce.uw.edu/bio.aspx?id=2755">Hal</a> and myself are returning to teach the MacOS and Advanced courses respectively. We are also adding two new faces to the instructor team for the iOS-focused class. Luke Adamson is a veteran Cocoa developer, having worked for <a href="http://www.omnigroup.com/">The Omni Group</a> and his own Cocoa consulting company for years. Luke will be joined by <a href="http://corporationunknown.com/blog/">Paul Goracke</a>, who has been programming Apple frameworks since back in the CodeWarrior days. The program is going to be even better this year and I can&#8217;t wait to see the student response.</p>
<p>If you are in the Seattle area and want to start your mastery of the Cocoa platforms I recommend you give our program a look. Our downtown Seattle session is now wait-listed, but the Bellevue session that starts in Winter still has spots. You can apply <a href="http://www.pce.uw.edu/prog.aspx?id=4074&amp;terms=cocoa">here</a>. Hope I see you in class this Spring!</p>
<p><strong>HTML5 Mobile Web Development</strong></p>
<p>In addition to all this Cocoa learn&#8217;n, our very own Jake Carter is teaching a course of his own. HTML5 is the new hotness and Jake is your Jedi Master, ready to guide you in the ways of CSS3 on mobile platforms. I&#8217;ve seen some of the cool demos Jake has worked up and I&#8217;m sure this class is going to be great. If you are interested in mobile web development you can&#8217;t afford not to dive in and attend this <strong>FREE</strong> course!</p>
<p>Jake&#8217;s class is a live, 10-session, online offering through O&#8217;Reilly that starts in October. If you can&#8217;t make the online sessions, you can purchase a video edition after. Find out all the details and sign up <a href="http://training.oreilly.com/html5mobile/">here</a>. Did I mention, it is <strong>FREE</strong>?</p>
<div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.roguesheep.com/2010/09/24/scholarly-shepherding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Postage Video-Product Decisions</title>
		<link>http://blog.roguesheep.com/2010/07/15/postage-video-product-decisions/</link>
		<comments>http://blog.roguesheep.com/2010/07/15/postage-video-product-decisions/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 20:08:49 +0000</pubDate>
		<dc:creator>liz</dc:creator>
				<category><![CDATA[Entertainment]]></category>
		<category><![CDATA[Postage]]></category>
		<category><![CDATA[RogueSheep]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPhone Postage App RogueSheep RS iphone iPhone4 Apple Award Winner]]></category>

		<guid isPermaLink="false">http://blog.roguesheep.com/?p=446</guid>
		<description><![CDATA[On October 9th, 2009 RogueSheep was approached to shoot a video by the production company Tipsy Pix and their partner Boston-based NKP Media. NKP Media is one of the top video suppliers to the big textbook publishers in the college market. The video was being shot for Cengage Learning&#8217;s best-selling textbook on marketing. The chapter [...]]]></description>
			<content:encoded><![CDATA[<p>On October 9th, 2009 RogueSheep was approached to shoot a video by the production company Tipsy Pix and their partner Boston-based NKP Media. NKP Media is one of the top video suppliers to the big textbook publishers in the college market. The video was being shot for Cengage Learning&#8217;s best-selling textbook on marketing. The chapter in which we were asked to be a video component was Product Decisions, and we were chosen due to the fact that earlier in 2009 our iPhone application &#8220;Postage&#8221; had won the coveted Apple Design Award. Postage was a gift that just kept giving.  We agreed to be a part of the video.</p>

<p>With our Seattle office under construction the morning of the shoot, the producers were creative and took it outside to use the scenic skyline as a backdrop. It was a perfect way to start the day. Chris Parrish and Brad Ellis were enthusiastic to talk about their product decisions, concepts and show off Postage to a few locals during the short clip. It was a gratifying experience to demonstrate the app in the wake of the huge splash it had made. The video was shot in HD and is slated to be shown all over the country at different universities in marketing classes during the 2010/2011 school year.</p>

<p>Tipsy Pix has produced hundreds of succinct educational documentaries and case studies of many well-known and upwardly-mobile companies. The condensed list includes: Vans, Kodak, Organic Valley, Method, Honda and Raleigh Bicycles. We were proud to join that list and enthusiastic to see the final footage.</p>

<p>It was a lot of fun for the company to get involved with this shoot. It is so rewarding to see something you did some of your best work on spread itself to unexpected venues.  We will continue to make top-notch products with a design flair people seem to appreciate. We hope you will enjoy the video. Thank you for making Postage the success it has become!</p>

<p><a href="http://www.vimeo.com/10554249">Click here to watch the video about Postage!!!</a></p>

<p>Friend us on Facebook (Postage for iPhone) or on Twitter (@postageapp) to keep up with all the latest news, free giveaways and information on upcoming products.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.roguesheep.com/2010/07/15/postage-video-product-decisions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Postage Spring Cleaning Sale</title>
		<link>http://blog.roguesheep.com/2010/03/24/postage-spring-cleaning-sale/</link>
		<comments>http://blog.roguesheep.com/2010/03/24/postage-spring-cleaning-sale/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 05:43:10 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Postage]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://blog.roguesheep.com/?p=305</guid>
		<description><![CDATA[We&#8217;re excited about the Northern Hemisphere&#8217;s move to spring here at RogueSheep. While getting our clocks adjusted for daylight savings time and packing away the winter wool, we realized we&#8217;d love to pass on our excitement for the season to our fans and customers. What better way to do that than a sale? Postage Spring [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re excited about the Northern Hemisphere&#8217;s move to spring here at RogueSheep. While getting our clocks adjusted for daylight savings time and packing away the winter wool, we realized we&#8217;d love to pass on our excitement for the season to our fans and customers. What better way to do that than a sale?</p>

<h4>Postage Spring Cleaning Sale</h4>

<p>For a limited time our premiere iPhone postcard application, <a href="http://postage.roguesheep.com/">Postage</a>, is available for <strong>60% off</strong> its normal price. That&#8217;s just <strong>$1.99 in the U.S. App Store</strong>!</p>

<p>But that&#8217;s not all. Our seasonal editions of Postage, each themed for a specific holiday, will be completely free. That&#8217;s right, a whopping <strong>ZERO</strong> dollars! Take <em>Valentine ~ Postage</em>, <em>Halloween ~ Postage</em> and <em>Holiday ~ Postage</em> for a test drive and upgrade to the full complement of over 80 postcard designs in the premium version before this sale ends.</p>

<p>If you&#8217;ve been sitting on the fence, waiting to decide if Postage is right for you, now is the time. Don&#8217;t fool around though, on <strong>April 1st</strong> all the applications in the Postage suite will return to their normal prices. Its not often you&#8217;ll find an award winning application available for so little. Head on over to the iTunes App Store and grab Postage now!</p>

<div style="align:center;text-align:center;">
<a href="http://apps.roguesheep.com"><img src="http://blog.roguesheep.com/wp-content/uploads/2010/03/SpringClean.png" alt="SpringClean.png" border="0" width="307" height="121" /></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.roguesheep.com/2010/03/24/postage-spring-cleaning-sale/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An enhancement for UIAlertView</title>
		<link>http://blog.roguesheep.com/2010/02/19/an-enhancement-for-uialertview/</link>
		<comments>http://blog.roguesheep.com/2010/02/19/an-enhancement-for-uialertview/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 19:29:53 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://blog.roguesheep.com/?p=288</guid>
		<description><![CDATA[I like objective-c protocols, and I am a fan of the interface oriented designs that it allows for. But, sometimes the indirection of using a selector with a defined signature just works better, and the problem is that UIAlertView does not take a selector. Instead, UIAlertView defines a protocol, UIAlertViewDelegate, that the alert&#8217;s delegate adopts [...]]]></description>
			<content:encoded><![CDATA[<p>I like objective-c protocols, and I am a fan of the interface oriented designs that it allows for. But, sometimes the indirection of using a selector with a defined signature just works better, and the problem is that UIAlertView does not take a selector. Instead, UIAlertView defines a protocol, UIAlertViewDelegate, that the alert&#8217;s delegate adopts to receive notification of the user intent. To be fair, UIAlertView communicates a bit more information back to it&#8217;s delegate than the target of an NSAlert, and the UIAlertViewDelegate protocol does a fine job achieving that goal. 99% of the time, however, I want to show an alert and have it call my named selector when it is done. To that end, I finally busted out the admittedly tiny class that does the job.</p>

<p>Now in my client code I show an alert like this:</p>

<pre>

<div class="codecolorer-container objc blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RSAlert<span style="color: #002200;">*</span> alert <span style="color: #002200;">=</span><br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>RSAlert alloc<span style="color: #002200;">&#93;</span> initWithTitle<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;Title&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;message<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;Message!&quot;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; target<span style="color: #002200;">:</span> self <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selector<span style="color: #002200;">:</span> <span style="color: #a61390;">@selector</span><span style="color: #002200;">&#40;</span>dismissedAlert<span style="color: #002200;">:</span>buttonIndex<span style="color: #002200;">:</span><span style="color: #002200;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;cancelButtonTitle<span style="color: #002200;">:</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;OK&quot;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;otherButtonTitles<span style="color: #002200;">:</span> <span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span>;</div></div>

</pre>

<p>and handle the result with a selector,  similar to NSAlert:</p>

<pre>

<div class="codecolorer-container objc blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span> dismissedAlert<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span>RSAlert<span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span> alert buttonIndex<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span>NSInteger<span style="color: #002200;">&#41;</span> buttonIndex<br />
<span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; NSLog<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;dismissedStartupAlert with buttonIndex: %d&quot;</span>, buttonIndex<span style="color: #002200;">&#41;</span>;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>alert autorelease<span style="color: #002200;">&#93;</span>;<br />
<span style="color: #002200;">&#125;</span></div></div>

</pre>

<p>I realize this is an infinitesimally small annoyance, but sometimes it&#8217;s the little things that keep us happy.</p>

<h3>RSAlert.h</h3>

<pre>

<div class="codecolorer-container objc blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #6e371a;">#import </span><br />
<br />
<span style="color: #a61390;">@interface</span> RSAlert <span style="color: #002200;">:</span> <a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSObject_Class/"><span style="color: #400080;">NSObject</span></a> <br />
<span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; UIAlertView<span style="color: #002200;">*</span>&nbsp; &nbsp; alertView_;<br />
&nbsp; &nbsp; <span style="color: #a61390;">id</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; target_;<br />
&nbsp; &nbsp; <span style="color: #a61390;">SEL</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selector_;<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span>initWithTitle<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/"><span style="color: #400080;">NSString</span></a><span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span> title <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; message<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/"><span style="color: #400080;">NSString</span></a><span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span> message <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;target<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span> target <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;selector<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">SEL</span><span style="color: #002200;">&#41;</span> selector<br />
&nbsp; cancelButtonTitle<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/"><span style="color: #400080;">NSString</span></a><span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span> cancelButtonTitle <br />
&nbsp; otherButtonTitles<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/"><span style="color: #400080;">NSString</span></a><span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span> otherButtonTitles, ...;<br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span> show;<br />
<br />
<span style="color: #a61390;">@end</span></div></div>

</pre>

<h3>RSAlert.m</h3>

<pre>

<div class="codecolorer-container objc blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #6e371a;">#import &quot;RSAlert.h&quot;</span><br />
<br />
<span style="color: #a61390;">@implementation</span> RSAlert<br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span>initWithTitle<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/"><span style="color: #400080;">NSString</span></a><span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span> title <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; message<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/"><span style="color: #400080;">NSString</span></a><span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span> message <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;target<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span> target <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;selector<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">SEL</span><span style="color: #002200;">&#41;</span> selector<br />
&nbsp; cancelButtonTitle<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/"><span style="color: #400080;">NSString</span></a><span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span> cancelButtonTitle <br />
&nbsp; otherButtonTitles<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/"><span style="color: #400080;">NSString</span></a><span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span> otherButtonTitles, ...;<br />
<span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; self <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>super init<span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span> self <span style="color: #002200;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; target_ &nbsp; &nbsp; <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>target retain<span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; selector_ &nbsp; <span style="color: #002200;">=</span> selector;<br />
&nbsp; &nbsp; &nbsp; &nbsp; alertView_&nbsp; <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>UIAlertView alloc<span style="color: #002200;">&#93;</span> initWithTitle<span style="color: #002200;">:</span> title<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;message<span style="color: #002200;">:</span> message<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; delegate<span style="color: #002200;">:</span> self<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;cancelButtonTitle<span style="color: #002200;">:</span> cancelButtonTitle<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;otherButtonTitles<span style="color: #002200;">:</span> <span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span> otherButtonTitles <span style="color: #002200;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #a61390;">va_list</span> argList;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #a61390;">id</span> anArg;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #002200;">&#91;</span>alertView_ addButtonWithTitle<span style="color: #002200;">:</span> otherButtonTitles<span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/va_start.html"><span style="color: #a61390;">va_start</span></a><span style="color: #002200;">&#40;</span>argList, otherButtonTitles<span style="color: #002200;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #a61390;">while</span> <span style="color: #002200;">&#40;</span> anArg <span style="color: #002200;">=</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/va_arg.html"><span style="color: #a61390;">va_arg</span></a><span style="color: #002200;">&#40;</span>argList, <span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #002200;">&#91;</span>alertView_ addButtonWithTitle<span style="color: #002200;">:</span> anArg<span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #002200;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/va_end.html"><span style="color: #a61390;">va_end</span></a><span style="color: #002200;">&#40;</span>argList<span style="color: #002200;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #002200;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #002200;">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #a61390;">return</span> self;<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span> dealloc<br />
<span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>target_ release<span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>alertView_ release<span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>super dealloc<span style="color: #002200;">&#93;</span>;<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span> show<br />
<span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>alertView_ show<span style="color: #002200;">&#93;</span>;<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>&nbsp; &nbsp; &nbsp; &nbsp;alertView<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span>UIAlertView<span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span> alertView <br />
&nbsp; &nbsp; clickedButtonAtIndex<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span>NSInteger<span style="color: #002200;">&#41;</span> buttonIndex<br />
<span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #11740a; font-style: italic;">// Do nothing</span><br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span> alertViewCancel<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span>UIAlertView<span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span> alertView<br />
<span style="color: #002200;">&#123;</span> &nbsp; <br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>target_ performSelector<span style="color: #002200;">:</span> selector_ <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; withObject<span style="color: #002200;">:</span> self <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; withObject<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span> <span style="color: #2400d9;">0</span><span style="color: #002200;">&#93;</span>;<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span> willPresentAlertView<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span>UIAlertView<span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span> alertView<br />
<span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #11740a; font-style: italic;">// Do nothing</span><br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>didPresentAlertView<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span>UIAlertView<span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span> alertView<br />
<span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #11740a; font-style: italic;">// Do nothing</span><br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;alertView<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span>UIAlertView<span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span> alertView <br />
&nbsp; &nbsp; willDismissWithButtonIndex<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span>NSInteger<span style="color: #002200;">&#41;</span> buttonIndex<br />
<span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #11740a; font-style: italic;">// Do nothing</span><br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; alertView<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span>UIAlertView<span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span> alertView <br />
&nbsp; &nbsp; didDismissWithButtonIndex<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span>NSInteger<span style="color: #002200;">&#41;</span> buttonIndex<br />
<span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>target_ performSelector<span style="color: #002200;">:</span> selector_ <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; withObject<span style="color: #002200;">:</span> self <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; withObject<span style="color: #002200;">:</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span> buttonIndex<span style="color: #002200;">&#93;</span>;<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #a61390;">@end</span></div></div>

</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.roguesheep.com/2010/02/19/an-enhancement-for-uialertview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

