<?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/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>Objective-C Archives - Richard Warrender</title>
	<atom:link href="https://richardwarrender.com/tag/objective-c/feed/" rel="self" type="application/rss+xml" />
	<link>https://richardwarrender.com/tag/objective-c/</link>
	<description>Creative Thinking, Clear Engineering</description>
	<lastBuildDate>Sun, 28 May 2023 11:34:51 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.2.9</generator>
<site xmlns="com-wordpress:feed-additions:1">219281189</site>	<item>
		<title>5 essential tips for using blocks effectively</title>
		<link>https://richardwarrender.com/2016/12/5-essential-tips-for-using-blocks/</link>
					<comments>https://richardwarrender.com/2016/12/5-essential-tips-for-using-blocks/#respond</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Sat, 31 Dec 2016 17:43:53 +0000</pubDate>
				<category><![CDATA[GCD]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[blocks]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[gcd]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Objective-C]]></category>
		<guid isPermaLink="false">https://richardwarrender.com/?p=1025</guid>

					<description><![CDATA[Objective-C Blocks are very powerful but often under-used or badly abused! Continuing on from my previous post on how to declare a block, here is a quick-fire list of 5 experience-earned tips that every developer should know. 1. typedef a block If you find yourself using a particular block syntax a lot or perhaps you [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2016/12/5-essential-tips-for-using-blocks/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1025</post-id>	</item>
		<item>
		<title>How to declare a block</title>
		<link>https://richardwarrender.com/2016/10/how-to-declare-block/</link>
					<comments>https://richardwarrender.com/2016/10/how-to-declare-block/#respond</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Mon, 10 Oct 2016 11:30:08 +0000</pubDate>
				<category><![CDATA[GCD]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[blocks]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[gcd]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Objective-C]]></category>
		<guid isPermaLink="false">https://richardwarrender.com/?p=1020</guid>

					<description><![CDATA[Are you really sure on how to declare a block? How about all 4 variations? On iOS and macOS, it can be easy to forget Objective-C block syntax as it isn&#8217;t the most intuitive, especially now Swift is becoming the main language of new projects. Remembering the syntax is actually just a short click away [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2016/10/how-to-declare-block/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1020</post-id>	</item>
		<item>
		<title>Encrypt data using AES and 256-bit keys</title>
		<link>https://richardwarrender.com/2016/04/encrypt-data-using-aes-and-256-bit-keys/</link>
					<comments>https://richardwarrender.com/2016/04/encrypt-data-using-aes-and-256-bit-keys/#comments</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Wed, 27 Apr 2016 19:06:29 +0000</pubDate>
				<category><![CDATA[Encryption]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[AES]]></category>
		<category><![CDATA[AES-256]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[CommonCrypto]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[openssl]]></category>
		<category><![CDATA[programming]]></category>
		<guid isPermaLink="false">https://richardwarrender.com/?p=936</guid>

					<description><![CDATA[AES stands for Advanced Encryption Standard and is an industry-standard algorithm for encrypting data symmetrically which even the US government has approved for SECRET documents. If you don&#8217;t know what symmetrical encryption is, it means that you use the same key or password to encrypt the data as you do to unencrypt it. So you [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2016/04/encrypt-data-using-aes-and-256-bit-keys/feed/</wfw:commentRss>
			<slash:comments>14</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">936</post-id>	</item>
		<item>
		<title>Quick way of cleaning HTML for iOS apps</title>
		<link>https://richardwarrender.com/2016/04/quick-way-of-cleaning-html-ios/</link>
					<comments>https://richardwarrender.com/2016/04/quick-way-of-cleaning-html-ios/#respond</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Tue, 05 Apr 2016 19:59:15 +0000</pubDate>
				<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Cocoa Touch]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[web]]></category>
		<guid isPermaLink="false">https://richardwarrender.com/?p=918</guid>

					<description><![CDATA[For some reason HTML is always dirty, it&#8217;s usually full of Analytics tags, JavaScript or contains nested HTML tags. This is usually fine for displaying in browsers but at some point an iOS app will need to display HTML content and usually when it does, you need it to display clean HTML or only a [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2016/04/quick-way-of-cleaning-html-ios/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">918</post-id>	</item>
		<item>
		<title>Facebook&#8217;s London Mobile Forum 2.0</title>
		<link>https://richardwarrender.com/2014/04/london-mobile-forum-2-0/</link>
					<comments>https://richardwarrender.com/2014/04/london-mobile-forum-2-0/#respond</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Mon, 14 Apr 2014 20:38:47 +0000</pubDate>
				<category><![CDATA[Core Animation]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[UIKit]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[interactions]]></category>
		<category><![CDATA[iOS 7]]></category>
		<category><![CDATA[London]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[physics]]></category>
		<guid isPermaLink="false">http://richardwarrender.com/?p=758</guid>

					<description><![CDATA[Last week I was fortunate to attend Facebook&#8217;s London Mobile Forum 2.0. This gathering of top London mobile developers and designers was a great chance to swap ideas and listen to a number of talks by Facebook, Big Nerd Ranch, Yammer, Bloom and Mozilla to name a few. The event was tiny with only 60 [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2014/04/london-mobile-forum-2-0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">758</post-id>	</item>
		<item>
		<title>5 Time-saving Objective-C tips every developer should know</title>
		<link>https://richardwarrender.com/2013/03/5-time-saving-objective-c-tips/</link>
					<comments>https://richardwarrender.com/2013/03/5-time-saving-objective-c-tips/#comments</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Tue, 19 Mar 2013 18:18:03 +0000</pubDate>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[UIKit]]></category>
		<category><![CDATA[consts]]></category>
		<category><![CDATA[enums]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[tips]]></category>
		<guid isPermaLink="false">http://richardwarrender.com/?p=623</guid>

					<description><![CDATA[Here&#8217;s a quick fire list of 5 time-saving Objective-C tips that every developer should know. Perfect for making time for that extra coffee! 1. Enum shorthand Enums at their simplest are labelled sets of integers. Where an inexperienced programmer might use a number to represent the download state of an image lets say, e.g. 0 [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2013/03/5-time-saving-objective-c-tips/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">623</post-id>	</item>
		<item>
		<title>How to call a block after a delay</title>
		<link>https://richardwarrender.com/2012/02/how-to-call-block-after-delay/</link>
					<comments>https://richardwarrender.com/2012/02/how-to-call-block-after-delay/#comments</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Wed, 22 Feb 2012 22:00:46 +0000</pubDate>
				<category><![CDATA[GCD]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[blocks]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[gcd]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[osx]]></category>
		<guid isPermaLink="false">http://richardwarrender.com/?p=412</guid>

					<description><![CDATA[On iOS and on OS X you sometimes need the User Interface to update after a short delay. The old way of doing it was calling the performSelector:withObject:afterDelay: selector on any NSObject subclass but that requires defining a new method in your class and you can only pass one object as a parameter. Instead, you [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2012/02/how-to-call-block-after-delay/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">412</post-id>	</item>
		<item>
		<title>Calculating UNIX file permissions</title>
		<link>https://richardwarrender.com/2011/06/calculating-unix-file-permissions/</link>
					<comments>https://richardwarrender.com/2011/06/calculating-unix-file-permissions/#comments</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Fri, 03 Jun 2011 00:45:23 +0000</pubDate>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[bitwise]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[unix]]></category>
		<guid isPermaLink="false">http://richardwarrender.com/?p=340</guid>

					<description><![CDATA[A few years ago I wrote a simple but handy Mac app that calculates unix file permissions using a matrix of check boxes. I wrote it because I wanted to better understand how those octal values get calculated and to expand my experience of writing Mac apps. I was also learning some crazy assembly code [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2011/06/calculating-unix-file-permissions/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">340</post-id>	</item>
		<item>
		<title>Core Data Objects in Wrong Sections</title>
		<link>https://richardwarrender.com/2010/10/core-data-objects-in-wrong-sections/</link>
					<comments>https://richardwarrender.com/2010/10/core-data-objects-in-wrong-sections/#comments</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Mon, 18 Oct 2010 17:55:49 +0000</pubDate>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Core Data]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Swift]]></category>
		<category><![CDATA[Cocoa Touch]]></category>
		<category><![CDATA[iOS 4]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[key-paths]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[sorting]]></category>
		<guid isPermaLink="false">http://richardwarrender.com/?p=213</guid>

					<description><![CDATA[NSFetchedResultsController is a really handy class. Use one of the default Core Data templates in Xcode and you&#8217;ll very quickly have a nice list of managed objects in a table view.&#160;With a few more lines of code you can get the NSFetchedResultsController to group your objects by sections. You do this by specifying a key-path [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2010/10/core-data-objects-in-wrong-sections/feed/</wfw:commentRss>
			<slash:comments>22</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">213</post-id>	</item>
		<item>
		<title>Re-ordering Core Data Objects on iOS4</title>
		<link>https://richardwarrender.com/2010/08/re-ordering-core-data-objects-on-ios4/</link>
					<comments>https://richardwarrender.com/2010/08/re-ordering-core-data-objects-on-ios4/#respond</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Tue, 17 Aug 2010 06:59:00 +0000</pubDate>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Core Data]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Cocoa Touch]]></category>
		<category><![CDATA[iOS 4]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[UI]]></category>
		<guid isPermaLink="false">http://richardwarrender.com/?p=139</guid>

					<description><![CDATA[The Core Data framework on the iPhone is incredibly powerful. It&#8217;s also incredibly efficient and part of that is because a collection of objects only have the order that you implicitly give them. For example you typically might give an Event object a timestamp and when you pull out all the events you might sort [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2010/08/re-ordering-core-data-objects-on-ios4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">139</post-id>	</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 
Lazy Loading (feed)
Minified using Disk
Database Caching 5/68 queries in 0.055 seconds using Memcached (Request-wide modification query)

Served from: richardwarrender.com @ 2026-05-02 04:28:28 by W3 Total Cache
-->