<?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>“我”的开发笔记 &#187; 02 &#8211; Objective-C</title>
	<atom:link href="http://c.gzl.name/archives/category/cocoa/cobjc/feed" rel="self" type="application/rss+xml" />
	<link>http://c.gzl.name</link>
	<description>IPhone, Cocoa, PHP, Javascript, JQuery, Actionscript, etc...</description>
	<lastBuildDate>Thu, 29 Dec 2011 07:20:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>循环使用整个NSArray内的对象</title>
		<link>http://c.gzl.name/archives/450</link>
		<comments>http://c.gzl.name/archives/450#comments</comments>
		<pubDate>Fri, 04 Sep 2009 01:08:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[02 - Objective-C]]></category>
		<category><![CDATA[Cocoa开发]]></category>
		<category><![CDATA[iPhone开发]]></category>
		<category><![CDATA[loop]]></category>
		<category><![CDATA[NSArray]]></category>
		<category><![CDATA[NSEnumerator]]></category>
		<category><![CDATA[循环]]></category>

		<guid isPermaLink="false">http://c.gzl.name/?p=450</guid>
		<description><![CDATA[循环使用整个NSArray内的对象是非常常用的了，而且最近我在研究究竟怎么能方便的把NSArray存入Core Data，所以这更是必要了，看看如下的方法吧： 1，Objective-C 2.0法，最应该使用的 NSArray *aArray; //我们的Array，假设他已经初始化有内容了 &#160; for&#40;id innerObj in aArray&#41; //id可以由其他对象类型替代 &#123; //也就是说, 在循环中的参数innerObj就是aArray中的对象 //由于NSArray中只能储存对象，所以我们使用id作为内涵对象的类型，其实就是个指针了 //而且如果NSArray中的内容不一致，id更不会出现冲突 &#125; 2，C的老方法，不推荐，低性能 NSArray *aArray; //我们的Array，假设他已经初始化有内容了 &#160; for&#40;int i=0;i&#60;&#91;aArray count&#93;; i++&#41; &#123; &#91;&#91;aArray objectAtIndex:i&#93; 然后作你想作的事情&#93;; //做爱 作的事情... &#125; 3, 用NSEnumerator（不知道怎么翻译阿&#8230;.） NSEnumerator* myIterator = &#91;myArray reverseObjectEnumerator&#93;; id anObject; &#160; while&#40; anObject = &#91;myIterator nextObject&#93;&#41; //每次读取“逐读器”的下一个对象 &#123; //anObject和刚才的innerObj是一个意思，但是看看多了这么多行 &#125; 结语： [...]]]></description>
		<wfw:commentRss>http://c.gzl.name/archives/450/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>iPhone上的JSON</title>
		<link>http://c.gzl.name/archives/244</link>
		<comments>http://c.gzl.name/archives/244#comments</comments>
		<pubDate>Sat, 01 Aug 2009 23:35:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[02 - Objective-C]]></category>
		<category><![CDATA[08 - 撤销/错误/KVC]]></category>
		<category><![CDATA[13 - 键值编程（KVC）]]></category>
		<category><![CDATA[Cocoa开发]]></category>
		<category><![CDATA[iPhone开发]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[KeyValueCoding]]></category>
		<category><![CDATA[NSDictionary]]></category>

		<guid isPermaLink="false">http://c.gzl.name/?p=244</guid>
		<description><![CDATA[JSON我就不多解释了，需要更多信息的朋友请到json.org上查看。 在iPhone上访问网络内容是很必须的，而一些数据就需要以某种形式储存在web服务器上。比如一个app的目录，内容，索引等等。而xml和json，plist都是比较方便的方式。 -XML在iPhone上是非常好用的，但是对复杂的数据结构使用上就不那么方便了，具体可以参阅苹果的“基于事件的XML”和“基于树的XML”编程向导 -plist是再方便不过了，不过我看最多也就是一个NSDictionary而已，复杂一些的话，数据输入上也会非常非常的麻烦。 -JSON本来是不被苹果支持的，但是有人很Nice的帮我们解决了这个问题：JSON for OBJC http://code.google.com/p/json-framework/ 基本上来说，这个框架异常的简单易用，会将得到的json字符串处理成一个复杂NSDictionary对象，而每一个值都还是一个NSDictionary对象 比如： { &#34;华藏净宗学会&#34;: { &#34;zhaomu&#34;: { &#34;name&#34;:&#34;净宗朝暮课本&#34;, &#34;length&#34;:142, &#34;digits&#34;:3 }, &#34;kesong&#34;: { &#34;name&#34;:&#34;净宗共修课本&#34;, &#34;length&#34;:75, &#34;digits&#34;:2 } }, &#34;生命基金会&#34;: { &#34;dabei88&#34;: { &#34;name&#34;:&#34;大悲出相图&#34;, &#34;length&#34;:88, &#34;digits&#34;:2 } } } 就会转换为一个复杂无比的NSDictionary： &#91;&#91;NSDictionary alloc&#93; initWithObjects:&#91;NSArray arrayWithObjects: &#91;NSDictionary dictionaryWithObjects:&#91;NSArray arrayWithObjects: &#91;NSDictionary dictionaryWithObjects:&#91;NSArray arrayWithObjects: @&#34;净宗朝暮课本&#34;, @&#34;142&#34;, @&#34;3&#34;,nil&#93; forKeys: &#91;NSArray arrayWithObjects: @&#34;name&#34;, @&#34;length&#34;, [...]]]></description>
		<wfw:commentRss>http://c.gzl.name/archives/244/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>多线程之NSInvocationOperation</title>
		<link>http://c.gzl.name/archives/88</link>
		<comments>http://c.gzl.name/archives/88#comments</comments>
		<pubDate>Tue, 16 Jun 2009 17:27:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[02 - Objective-C]]></category>
		<category><![CDATA[Cocoa开发]]></category>
		<category><![CDATA[iPhone开发]]></category>
		<category><![CDATA[NSInvocationOperation]]></category>
		<category><![CDATA[NSOperationQueue]]></category>
		<category><![CDATA[多线程]]></category>

		<guid isPermaLink="false">http://c.gzl.name/?p=88</guid>
		<description><![CDATA[T 多线程编程是防止主线程堵塞，增加运行效率等等的最佳方法。而原始的多线程方法存在很多的毛病，包括线程锁死等。在Cocoa中，Apple提供了NSOperation这个类，提供了一个优秀的多线程编程方法。 本次介绍NSOperation的子集，简易方法的NSInvocationOperation： @implementation MyCustomClass &#160; - &#40;void&#41;launchTaskWithData:&#40;id&#41;data &#123; //创建一个NSInvocationOperation对象，并初始化到方法 //在这里，selector参数后的值是你想在另外一个线程中运行的方法（函数，Method） //在这里，object后的值是想传递给前面方法的数据 NSInvocationOperation* theOp = &#91;&#91;NSInvocationOperation alloc&#93; initWithTarget:self selector:@selector&#40;myTaskMethod:&#41; object:data&#93;; &#160; // 下面将我们建立的操作“Operation”加入到本地程序的共享队列中（加入后方法就会立刻被执行） // 更多的时候是由我们自己建立“操作”队列 &#91;&#91;MyAppDelegate sharedOperationQueue&#93; addOperation:theOp&#93;; &#125; &#160; // 这个是真正运行在另外一个线程的“方法” - &#40;void&#41;myTaskMethod:&#40;id&#41;data &#123; // Perform the task. &#125; &#160; @end 一个NSOperationQueue 操作队列，就相当于一个线程管理器，而非一个线程。因为你可以设置这个线程管理器内可以并行运行的的线程数量等等。下面是建立并初始化一个操作队列： @interface MyViewController : UIViewController &#123; &#160; NSOperationQueue *operationQueue; //在头文件中声明该队列 &#125; @end [...]]]></description>
		<wfw:commentRss>http://c.gzl.name/archives/88/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>为什么不能直接调用dealloc而是release</title>
		<link>http://c.gzl.name/archives/75</link>
		<comments>http://c.gzl.name/archives/75#comments</comments>
		<pubDate>Mon, 15 Jun 2009 21:33:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[01 - 基础信息]]></category>
		<category><![CDATA[02 - Objective-C]]></category>
		<category><![CDATA[03 - 内存管理]]></category>
		<category><![CDATA[Cocoa开发]]></category>
		<category><![CDATA[iPhone开发]]></category>
		<category><![CDATA[dealloc]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://c.gzl.name/?p=75</guid>
		<description><![CDATA[M 在看过CS193P的笔记后，以下是真正有用的句子： dealloc不等于C中的free，dealloc并不将内存释放，也不会将索引计数（Reference counting）降低。于是直接调用dealloc反而无法释放内存。 在Objective-C中，索引计数是起决定性作用的。]]></description>
		<wfw:commentRss>http://c.gzl.name/archives/75/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

