<?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>梁剑的Blog &#187; ObjC</title>
	<atom:link href="http://icomes.net/tag/objc/feed/" rel="self" type="application/rss+xml" />
	<link>http://icomes.net</link>
	<description>做有趣的事，做有用的人</description>
	<lastBuildDate>Wed, 23 Jun 2010 16:04:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>从c++到Objective-C</title>
		<link>http://icomes.net/2009/12/27/%e4%bb%8ec%e5%88%b0objective-c/</link>
		<comments>http://icomes.net/2009/12/27/%e4%bb%8ec%e5%88%b0objective-c/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 14:53:06 +0000</pubDate>
		<dc:creator>梁剑</dc:creator>
				<category><![CDATA[技术笔记]]></category>
		<category><![CDATA[ObjC]]></category>

		<guid isPermaLink="false">http://icomes.net/?p=475</guid>
		<description><![CDATA[1. 头文件依然是.h
2. .cpp变成了.m
3. #import代替了#include，#import保证只会引用一次，相当于.h里的#ifndef #define #endif模式
4. 用@interface &#8230; @end来声明类，取代class ClassName{}
5. 用@implementation &#8230; @end来实现类
6. Data Members放在@interface ClassName : Parent{ &#8230; }中，默认权限为@protected，在ObjC里称为Instance Variables
7. Member Functions放在@interface ClassName: Parent{} &#8230; @end中，在ObjC里称为Instance Methods
8. Instance Methods的声明方式为：scope (returnType) methodName: (parameter1Type) parameter1Name;
9. scope分instance和class两种，分别用-和+表示
10. 调用method的方式是[object method]，相当于object-&#62;method()
11. 带参数调用method的方式是[object method: parameter]
12. 没有Object，只有Pointer to Object
13. 通常的构造方式： Object * obj = [[Object alloc] init]
14. 析构的方式：[obj release]15.多参数method的声明方式： scope (returnType) [...]]]></description>
			<content:encoded><![CDATA[<p>1. 头文件依然是.h<br />
2. .cpp变成了.m<br />
3. #import代替了#include，#import保证只会引用一次，相当于.h里的#ifndef #define #endif模式<br />
4. 用@interface &#8230; @end来声明类，取代class ClassName{}<br />
5. 用@implementation &#8230; @end来实现类<br />
6. Data Members放在@interface ClassName : Parent{ &#8230; }中，默认权限为@protected，在ObjC里称为Instance Variables<br />
7. Member Functions放在@interface ClassName: Parent{} &#8230; @end中，在ObjC里称为Instance Methods<br />
8. Instance Methods的声明方式为：scope (returnType) methodName: (parameter1Type) parameter1Name;<br />
9. scope分instance和class两种，分别用-和+表示<br />
10. 调用method的方式是[object method]，相当于object-&gt;method()<br />
11. 带参数调用method的方式是[object method: parameter]<br />
12. 没有Object，只有Pointer to Object<br />
13. 通常的构造方式： Object * obj = [[Object alloc] init]<br />
14. 析构的方式：[obj release]15.多参数method的声明方式： scope (returnType) methodName: (parameter1Type) parameter1Name label1Name: (parameter2Type) parameter2Name &#8230; ;<br />
16. labelName不是必须的<br />
17. 这种特别的语法源自SmallTalk<br />
18. private: [list of vars] protected: [list of vars] public: [list of vars] 改成了@private, @protected, @public<br />
19. Class Variable用static的方法实现⋯⋯<br />
20. +(void) initialize 会在构造的时候被调用<br />
21. ObjC通常用@符号表示语言的衍生部分<br />
22. ObjC用id来表示范型对象的指针<br />
23. 支持动态类型识别<br />
24. Categories机制可用于不继承已有class的前提下加入新功能<br />
25. Posing机制允许Child取代Parent<br />
26. Protocol相当于pure virtual class<br />
27. ObjC由两种内存管理的方法，1) retain and release，2) retain and release/autorelease<br />
28. Foundation相当于STL，NSArray对应vector，NSDictionary对应map<br />
29. ObjC不支持Namespace<br />
30. 不支持重载</p>
]]></content:encoded>
			<wfw:commentRss>http://icomes.net/2009/12/27/%e4%bb%8ec%e5%88%b0objective-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
