<?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://www.hjide.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.hjide.com</link>
	<description>每一天我們都在進步</description>
	<lastBuildDate>Sun, 11 Mar 2012 19:45:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Adobe Photoshop CS5安装区分大小写的分区</title>
		<link>http://www.hjide.com/article/678.htm</link>
		<comments>http://www.hjide.com/article/678.htm#comments</comments>
		<pubDate>Sun, 11 Mar 2012 19:44:44 +0000</pubDate>
		<dc:creator>Jock</dc:creator>
				<category><![CDATA[杂七杂八]]></category>

		<guid isPermaLink="false">http://www.hjide.com/?p=678</guid>
		<description><![CDATA[悲剧了，无法安装在使用区分大小写的文件系统的卷或基于闪存的可移动存储设备上，另外分一个区格式化成普通日志式也不行，必须要系统分区是普通日志式的才可以，看来只能重装系统了。 附安装要求： 　　Intel 多核处理器 　　Mac OS X 10.5.7 或 10.6 版 　　1GB 内存 　　2GB 可用硬盘空间用于安装；安装过程中需要额外的可用空间（无法安装在使用区分大小写的文件系统的卷或基于闪存的可移动存储设备上） 　　1024&#215;768 屏幕（推荐 1280&#215;800），配备符合条件的硬件加速 OpenGL 图形卡、16 位颜色和 256MB VRAM 　　某些 GPU 加速功能需要 Shader Model 3.0 和 OpenGL 2.0 图形支持 　　DVD-ROM 驱动器 　　多媒体功能需要 QuickTime 7.6.2 软件 　　在线服务需要宽带 Internet 连接**]]></description>
		<wfw:commentRss>http://www.hjide.com/article/678.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>新安装Lion和XCode后没有gcc的解决办法</title>
		<link>http://www.hjide.com/article/671.htm</link>
		<comments>http://www.hjide.com/article/671.htm#comments</comments>
		<pubDate>Sat, 10 Mar 2012 11:53:17 +0000</pubDate>
		<dc:creator>Jock</dc:creator>
				<category><![CDATA[杂七杂八]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www.hjide.com/?p=671</guid>
		<description><![CDATA[新安装Lion10.7.3和XCode4.3.1后，命令行没有gcc 等各种编译工具。 解决方法在XCode的菜单里Preferences，弹出的窗口里Downloads &#62; Command Line Tools &#62; Install，如下图：]]></description>
		<wfw:commentRss>http://www.hjide.com/article/671.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>第二章 类定义（2）</title>
		<link>http://www.hjide.com/article/668.htm</link>
		<comments>http://www.hjide.com/article/668.htm#comments</comments>
		<pubDate>Fri, 09 Mar 2012 10:03:13 +0000</pubDate>
		<dc:creator>Jock</dc:creator>
				<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www.hjide.com/?p=668</guid>
		<description><![CDATA[接口的规则 接口文件的作用是向别的代码模块或别的程序员声明新的类。它包含了使用这个类的所有信息（程序员还可记录少量的文档）。 ▪    接口文件告诉用户这个类在类的继承层次结构的位置，以及它继承和引用的类。 ▪    接口文件让编译器知道一个对象包含了哪些实例变量，同时也告诉程序员他的子类继承了哪些变量。尽管和接口相比实例变量通常更自然的被认为是类的实现部分，但它还是必须在接口文件中定义。这是因为编译器必须知道对象所使用的数据结构，而不仅仅是它的定义。作为程序员除了在定义子类时需要关心实例变量外，其它时候都可以忽略他们。 ▪   最后，通过类方法清单接口文件让其他模块知道什么样的消息可以被发送给类对象和类的实例。任何可以在类定义外使用的方法都在接口文件中定义，方法在类实现内部使用的可以被省略。 类的实现 ▪   类定义也像它的声明那样结构化的，以@implementation指令开始，以@end指令结束： @implementation ClassName : ItsSuperclass { instance variable declarations } method definitions @end &#160; 但是每个接口文件都必须引入他们自己的接口文件。例如Rectangle.m引入Rectangle.h，这样实现文件就不需要重复引入那些已经在接口文件中引入的类，它们可以被安全的忽略： l 父类的名字 l 实例变量的声明。这简化了实现使之更专注于方法的定义： #import &#8220;ClassName.h&#8221; @implementation ClassName method definitions @end 方法的定义和C语言的函数一样，包含在一对花括号中，{ 的前面和接口文件中的格式相同，但是没有分号。例如： + alloc { &#8230; } - (BOOL)isfilled { &#8230; } - (void)setFilled:(BOOL)flag { &#8230; } 参数个数可变的方法就像函数一样处理参数： #import [...]]]></description>
		<wfw:commentRss>http://www.hjide.com/article/668.htm/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>第二章	类定义（1）</title>
		<link>http://www.hjide.com/article/662.htm</link>
		<comments>http://www.hjide.com/article/662.htm#comments</comments>
		<pubDate>Tue, 06 Mar 2012 09:28:44 +0000</pubDate>
		<dc:creator>Jock</dc:creator>
				<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www.hjide.com/?p=662</guid>
		<description><![CDATA[第二章 类定义 面向对象编程大部分由编写为新对象的代码组成——定义新的类。在 Objective-C中类定义由两部分组成： l   接口，声明的方法和类的实例变量以及父类的名称。 l   实现，类定义的实际实现 （包含其实现方法的代码） 。 通常拆分两个文件，不过有时通过使用一种称为&#8221; category类别&#8221;的功能一个类定义可能会跨越多个文件。类别可以分类类定义或扩展一个现有。Categories类别请看&#8221;类别和扩展&#8221;(41 页) 源文件 尽管编译器并不强制，接口和实现通常分为两个不同的文件。接口文件必须提供给任何使用的类的人。单个文件可以声明或实现多个类。不过，通常习惯是每个类即使没有单独的实现文件，但有一个单独的接口文件。保持独立的类接口更能反映他们是独立的实体。接口和实现的文件通常用类名命名。实现文件的名称有.m 扩展名，表明它包含Objective-C源代码。接口文件可以是任何其他扩展名，但因为它包含在其他源文件中，接口文件的名称通常有典型的头文件的.h 扩展名。例如，将在 Rectangle.h 中声明并在 Rectangle.m 中定义Rectangle矩形类。将对象的实现和接口分离，正好符合面向对象程序设计思想。对象是一个独立的实体，从外面查看几乎为&#8221;黑箱&#8221;。一旦您确定对象如何与您的程序中的其他元素交互，也就是说，一旦您声明了它的接口就可以自由改变其实现不会影响应用程序的任何其它部分。 类接口 类的接口声明是以编译指令@interface开始以指令@end结束（所有的Objective-C指令都是以“@”开头的）。           @interface ClassName : ItsSuperclass           {               instance variable declarations           }           method declarations           @end 第一行声明了一个新的类并链接到父类，父类定义了新类在继承层次结构中的位置。如果没有冒号和父类类名称，那么新的类声明为根类，NSObject 类的竞争对手。 类声明的第一部分以下，括号括起的部分是每个类的实例的数据结构——实例变量的声明。下面是部分可能在Rectangle矩形类中声明的实例变量的列表：           float width;           float height;           BOOL filled;           NSColor [...]]]></description>
		<wfw:commentRss>http://www.hjide.com/article/662.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>第一章 类和对象（5）</title>
		<link>http://www.hjide.com/article/659.htm</link>
		<comments>http://www.hjide.com/article/659.htm#comments</comments>
		<pubDate>Tue, 06 Mar 2012 06:50:31 +0000</pubDate>
		<dc:creator>Jock</dc:creator>
				<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www.hjide.com/?p=659</guid>
		<description><![CDATA[创建实例 类对象的主要功能是创建新的实例。此代码告诉Rectangle类要创建一个新的Rectangle实例，并将其分配给 myRect 变量： id  myRect; myRect = [Rectangle alloc]; alloc方法动态地为新对象的实例变量分配内存，并将它们都初始化为 0，只有 isa 变量连接到它的类的新实例。让一个对象可用用，它通常需要更完全的初始化。这是init方法的功能。通常alloc后立即进行初始化： myRect = [[Rectangle alloc] init]; 这行代码，或类似之前，需要 myRect 可以接收任何显示了这样的消息在前面的例子，在这一章。alloc方法返回一个新的实例，该实例执行 init 方法来设置它的初始状态。每个类的对象都至少有一个方法 （如alloc），使它能够产生新的对象，每个实例都至少有一个方法 （如 init），以供使用。初始化方法经常带有参数允许传递特定值和关键字标签参数的 （例如initWithPosition:size：是一个初始化新的Rectangle矩形实例的方法），但他们都以&#8221;init&#8221;开始。 自定义类对象 在Objective-C中类被视为对象不是只是一时兴起。是一种有目的选择，和有点出人意料的情况，设计的好处。例如，自定义一个类，该类属于一个不限成员名额的集合对象是可能的。在应用程序套件中，例如，NSMatrix 对象可以自定义与特定种类的 NSCell 对象。 NSMatrix 对象可以创建表示其单元格的各个对象的责任。矩阵第一次初始化和之后新的单元格需要时，它可以这样做。在运行时在屏幕绘制一个 NSMatrix 对象的增长及收缩都是可见的，也许在响应用户操作。当它的增长时，矩阵需要能够产生新的对象来填充新的插槽。 但他们应该是什么样的对象呢？每个矩阵只显示一种NSCell，但有很多不同的种类。图 1-3 的继承层次结构显示应用程序套件所提供的一部分。都是从泛型的 NSCell 类继承的： 图 1-3 NSCell的继承层次结构 注意：编译器还生成的每个类的&#8221;元类对象&#8221;。正如类对象描述类的实例，它描述的类对象。虽然你可以给实例和类对象发送消息，但是元类对象只有运行时系统内部可以使用。 一个矩阵创建NSCell对象时，当用来显示按钮或开关时它应该是NSButtonCell对象，用来显示那些用户可以输入或编辑文本的域时它应该是NSTextFieldCell对象，或者其他类型的NSCell？NSMatrix对象必须填入允许任何类型的单元格，甚至是那些还未被定义的类型。 解决此问题的一个方法是将NSMatrix定义为一个抽象类，并要求使用它时声明一个子类并实现产生新单元格的方法。因为他们会实现该方法，所以类用户可以确保他们创建的对象的类型是正确的。 但是这本应该在NSMatrix类做得，缺需要其他人来完成，并且这样的工作遍布了其他类。由于应用程序可能需要一种以上的 NSMatrix，每个都有一种不同的 NSCell，这让NSMatrix的子类变得杂乱无章。每当你定义一种新的NSCell，都将定义一种新的NSMatrix。此外，不同项目的程序员会写几乎相同的代码来做同样的工作，大家尽量去做NSMatrix是失败的解决方案。 一个更好的解决方案，是采用NSMatrix 类允许进行初始化一种 NSCell的NSMatrix实例——和一个类对象。它定义setCellClass方法：该方法将NSCell类对象传递给NSMatrix，NSMatrix使用类对象的方法填充空插槽： [myMatrix [...]]]></description>
		<wfw:commentRss>http://www.hjide.com/article/659.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>第一章 类和对象（4）</title>
		<link>http://www.hjide.com/article/657.htm</link>
		<comments>http://www.hjide.com/article/657.htm#comments</comments>
		<pubDate>Sun, 04 Mar 2012 16:38:53 +0000</pubDate>
		<dc:creator>Jock</dc:creator>
				<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www.hjide.com/?p=657</guid>
		<description><![CDATA[静态类型 在id的位置使用类名将指定对象的类型：           Rectangle *myRect; 因为这种声明一个对象类型的方式使编译器知道有关的对象类型的信息，它被称为静态类型。正如 id 定义为指向对象的指针，对象是静态类型作为一个类的指针。对象始终是一个指针类型的。静态类型使指针类型明确；id隐藏它。 静态类型允许做一些类型检查编译器——例如，如果对象收到一条它似乎不是能够响应的消息时将发出警告；和放宽某些限制，一般适用于id类型对象。此外，其他人读取你的源代码可以更清晰的知道你的意图。但是，它不会打败动态绑定或替代的接收器类在运行时动态检查。 可以静态类型的对象是它自己的类或任何它继承的类。例如，由于继承使得Rectangle矩形是Graphic图形的一种，Rectangle矩形实例可以静态类型化为Graphic图形类：           Graphic *myRect; 因为Rectangle矩形是Graphic图形所以这样做是可以的。因为它不仅仅有Graphic图形类的实例变量和方法的功能，还有Shape和Rectangle的。为了类型检查，编译器认为 myRect 是一个Graphic图形，但在运行时它被视为一个Rectangle矩形。 See “Enabling Static Behavior” (page 87) for more on static typing and its benefits. 内省类型 实例可以在运行时报告它们的类型。IsMemberOfClass： 在 NSObject 类中定义的方法，检查接收器是否为特定类的实例：           if ( [anObject isMemberOfClass:someClass] )               &#8230; IsKindOfClass方法： 还是在 NSObject 类中定义的方法，更普遍用来检查是否从特定类继承（其继承路径中是否有该类）：           if ( [anObject isKindOfClass:someClass] )               &#8230; [...]]]></description>
		<wfw:commentRss>http://www.hjide.com/article/657.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>第一章 类和对象（3）</title>
		<link>http://www.hjide.com/article/655.htm</link>
		<comments>http://www.hjide.com/article/655.htm#comments</comments>
		<pubDate>Wed, 29 Feb 2012 08:05:02 +0000</pubDate>
		<dc:creator>Jock</dc:creator>
				<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www.hjide.com/?p=655</guid>
		<description><![CDATA[类          典型的面向对象程序是有各种各样的对象组成的。基于Cocoa框架的程序应该会使用NSMatrix, NSWindow, NSDictionary, NSFont, NSText以及其他许多对象。程序还经常使用超过一个同类型或类的对象，比如NSArray 或 NSWindow 对象。      在Objective-C中，定义一个对象是靠定义类来实现的。类定义了一组对象的原型，它声明了实例变量作为类的一部分成员，同事定义了一组方法给类的对象使用。          编译器为每个类创建一个可访问对象，类对象知道如何创建一个属于这个类的新对象（基于这个原因典型的叫法是“对象工厂”）。类对象是类编译后的版本，对象是类的实例。你的程序中做主要工作的是在运行的时候类对象创建的那些实例化后的对象。 一个类的所有实例都有一组相同的方法和一组从相同模型中产生实例变量。每个对象有各自的实例变量，但是他们的方法是共享的。 通常约定类名的首字母大写（比如“Rectangle”），实例的名字首字母小写（比如“myRect”）。 继承 类的定义是可添加的，每一个你定义的新类是基于另一个类，继承了那个类的方法和成员变量。新类只需要简单的添加或修改它所继承的东西，而不需要完全复制那些代码。 一个基类在继承树的顶端将所有的类通过继承关系联系在一起。当基于这个框架写代码时，这个基类是NSObject。所有的类（除了基类）都有父类（离基类更近一步），同时所有的类都可以是任意数量子类（离基类更远一步）的父类。图 1-1 说明了一部分画图程序中的类。 图 1-1 画图程序类 这个图说明了Square类是Rectangle类的子类，Rectangle类是Shape的子类，Shape是Graphic的子类，Graphic是NSObject的子类。继承是累积的，所以Square对象有Rectangle, Shape, Graphic, 和NSObject对象中定义的方法和成员变量以及Square中自己定义的方法和成员变量。简单的说就是Square 对象不仅仅是一个Square对象，它也是一个Rectangle对象, 一个Shape对象, 一个Graphic对象, 一个NSObject对象。 因此除了NSObject之外每个类都是一个专业化的或者是另一个类的改编。每个类是它所继承的一连串父类改进的累积。Square类仅需少量定义就可从Rectangle转换到Square。 当你定义一个类时，通过声明其父类链接到该层次结构 ；你创建的每个类 （除非您定义一个新的根类），必须是另一个类的子类。许多已经存在的超类都可用。Cocoa包括 NSObject 类和几个框架包含额外的 250 多个类的定义。有些类你可以在你的程序中直接使用。其他的可能要通过定义子类来适应你自己的需求。 一些框架类定义几乎所有你需要的，仅一些具体细节需要你在子类中实现的。因此，通过重用框架的程序员所做的工作你只需要编写少量代码就可以创建非常复杂的对象。 NSObject类        NSObject 是一个根类，所以没有父类。它定义了Objective-C对象和对象的交互的基本框架。而且传授类和从其继承的类实例与运行时系统合作的能力。 NSObject类的子类不需要任何特别的行为，类的实例必须至少具有类似Objective-C对象在运行时的行为的能力。从 NSObject 类继承这种能力简单得多，比重塑新的类定义更为可靠。 注意：实施新的根类是微妙的任务具有许多隐藏的危险。该类必须重复很多 NSObject 类做的，如分配实例、将它们连接到它们的类并让运行时系统识别它们。为此，通常应该使用Cocoa提供的根类NSObject。有关详细信息，请参阅 NSObject 类和 NSObject 协议的基础框架文档。 [...]]]></description>
		<wfw:commentRss>http://www.hjide.com/article/655.htm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>NSString从文件内容中初始化字符串例子</title>
		<link>http://www.hjide.com/article/651.htm</link>
		<comments>http://www.hjide.com/article/651.htm#comments</comments>
		<pubDate>Wed, 08 Feb 2012 13:48:02 +0000</pubDate>
		<dc:creator>Jock</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Objective-C]]></category>

		<guid isPermaLink="false">http://www.hjide.com/?p=651</guid>
		<description><![CDATA[NSString从文件内容中初始化字符串例子 char *errorMsg; NSError *error = nil; NSString* sql = &#91;&#91;NSString alloc&#93;initWithContentsOfFile:@&#34;db.sql&#34; encoding:NSUTF8StringEncoding error:&#38;error&#93;; if &#40;sqlite3_exec&#40;dataBase, &#91;sql UTF8String&#93;, NULL, NULL, &#38;errorMsg&#41; != SQLITE_OK&#41; &#123; sqlite3_close&#40;dataBase&#41;; &#125;]]></description>
		<wfw:commentRss>http://www.hjide.com/article/651.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>git-shell报错的解决方法</title>
		<link>http://www.hjide.com/article/649.htm</link>
		<comments>http://www.hjide.com/article/649.htm#comments</comments>
		<pubDate>Fri, 03 Feb 2012 06:26:12 +0000</pubDate>
		<dc:creator>Jock</dc:creator>
				<category><![CDATA[技术相关]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[git-shell]]></category>

		<guid isPermaLink="false">http://www.hjide.com/?p=649</guid>
		<description><![CDATA[git-shell报错 fatal: Interactive git shell is not enabled. hint: ~/git-shell-commands should exist and have read and execute access. 已经在/etc/passwd文件中将登陆用户的shell改为git-shell git:x:502:502::/home/git:/usr/local/bin/git-shell 解决办法： 将目录~git/contrib/git-shell-commands拷贝到git用户下/home/git/ 修改所有者chown -R git.git git-shell-commands 如果该目录下的help和list没有执行权，那么再给它加执行权 chmod +x /home/git/git-shell-commands/help chmod +x /home/git/git-shell-commands/list su git测试下，应该能看见 Run &#8216;help&#8217; for help, or &#8216;exit&#8217; to leave. Available commands:list 命令描述，摘自README help: Prints out the names of available commands. list: [...]]]></description>
		<wfw:commentRss>http://www.hjide.com/article/649.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ios定位api core location</title>
		<link>http://www.hjide.com/article/645.htm</link>
		<comments>http://www.hjide.com/article/645.htm#comments</comments>
		<pubDate>Thu, 26 Jan 2012 15:58:25 +0000</pubDate>
		<dc:creator>Jock</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Objective-C]]></category>

		<guid isPermaLink="false">http://www.hjide.com/?p=645</guid>
		<description><![CDATA[IOS中的core location提供了定位功能，能定位装置的当前坐标，同时能得到装置移动信息。因为对定位装置的轮询是很耗电的，所以最好只在非常必要的前提下启动。 其中，最重要的类是CLLocationManager，定位管理。 其定位有3种方式： 1，GPS，最精确的定位方式，貌似iphone1是不支持的。 2，蜂窝基站三角定位，这种定位在信号基站比较秘籍的城市比较准确。 3，Wifi，这种方式貌似是通过网络运营商的数据库得到的数据，在3种定位种最不精确 使用方式： 1，引入CoreLocation的包，一般的默认模板里是没有的，所以需要手动导入。 2，通过启动CLLocationManager来启动定位服务，因为定位信息是需要轮询的，而且对于程序来说是需要一定时间才会得到的，所以对于lcationManager的操作大多都给委托来完成。 加载locationManager的代码： &#91;plain&#93; view plaincopy CLLocationManager *locationManager = &#91;&#91;CLLocationManager alloc&#93; init&#93;;//创建位置管理器 locationManager.delegate=self; locationManager.desiredAccuracy=kCLLocationAccuracyBest; locationManager.distanceFilter=1000.0f; //启动位置更新 &#91;locationManager startUpdatingLocation&#93;; desiredAccuracy为设置定位的精度，可以设为最优，装置会自动用最精确的方式去定位。 distanceFilter是距离过滤器，为了减少对定位装置的轮询次数，位置的改变不会每次都去通知委托，而是在移动了足够的距离时才通知委托程序，它的单位是米，这里设置为至少移动1000再通知委托处理更新。 startUpdatingLocation就是启动定位管理了，一般来说，在不需要更新定位时最好关闭它，用stopUpdatingLocation，可以节省电量。 对于委托CLLocationManagerDelegate，最常用的方法是： - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation; 这个方法即定位改变时委托会执行的方法。 可以得到新位置，旧位置，CLLocation里面有经度纬度的坐标值， 同时CLLocation还有个属性horizontalAccuracy，用来得到水平上的精确度，它的大小就是定位精度的半径，单位为米。 如果值为－1，则说明此定位不可信。 另外委托还有一个常用方法是 - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error ; 当定位出现错误时就会调用这个方法。 CoreLocation中得到的定位信息都是以经度和纬度等表示的地理信息，很多时候我们需要把它反向编码成普通人能读懂的地理位置描述如：X国XX市XXX区XXX街道XX号，这就需要用到MapKit中的一个地理位置反向编码工具：MKReverseGeocoder， 用法： 1，首先要实现协议MKReverseGeocoderDelegate，因为将坐标信息发到服务器再反回来需要一定的时间，所以为了防止阻塞，发出信息后并不知到什么时候会返回信息，信息返回时会通知委托方法。这里实现这个类主要时为了实现2个方法如下： &#91;plain&#93; view plaincopy [...]]]></description>
		<wfw:commentRss>http://www.hjide.com/article/645.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

