<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_Kaixuan</title><subtitle type="text">1901记的一些东东！~</subtitle><id>http://feed.cnblogs.com/blog/u/29830/rss</id><updated>2011-10-27T03:11:27Z</updated><author><name>1901</name><uri>http://www.cnblogs.com/kaixuan/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kaixuan/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/29830/rss"/><entry><id>http://www.cnblogs.com/kaixuan/archive/2011/06/29/2093731.html</id><title type="text">颜色转换工具</title><summary type="text">最近在做Objective-C的开发，发现在Objective-C中使用UIColor生成颜色需要的参数不是我们一般使用的0-255和十六进制表示方法，而是0-1的小数表示方式(如：UIColor* color = [UIColor colorWithRed:0.79 green:0.87 blue:0.91 alpha:1];)，很不习惯，所以用flash写了个转换的小工具放上来以便有需要的朋友使用。补发两个在Objective-C中取颜色的宏：//RGB color macro#define UIColorFromRGB(rgbValue) [UIColor \ colorWithRed:</summary><published>2011-06-29T12:25:00Z</published><updated>2011-06-29T12:25:00Z</updated><author><name>1901</name><uri>http://www.cnblogs.com/kaixuan/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kaixuan/archive/2011/06/29/2093731.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kaixuan/archive/2011/06/29/2093731.html"/><content type="html">&lt;p&gt;最近在做Objective-C的开发，发现在Objective-C中使用UIColor生成颜色需要的参数不是我们一般使用的0-255和十六进制表示方法，而是0-1的小数表示方式(如：UIColor* color = [UIColor colorWithRed:0.79 green:0.87 blue:0.91 alpha:1];)，很不习惯，所以用flash写了个转换的小工具放上来以便有需要的朋友使用。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;object height="260" width="620" data="http://files.cnblogs.com/kaixuan/flex/xcolor.swf" type="application/x-shockwave-flash"&gt;&#xD;
&lt;param name="data" value="http://files.cnblogs.com/kaixuan/flex/xcolor.swf" /&gt;&lt;param name="src" value="http://files.cnblogs.com/kaixuan/flex/xcolor.swf" /&gt;&lt;/object&gt;&#xD;
&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;补发两个在Objective-C中取颜色的宏：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;pre&gt;&lt;div&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;RGB color macro&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;#define&lt;/span&gt;&lt;span style="color: #000000;"&gt; UIColorFromRGB(rgbValue) [UIColor \&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                                    colorWithRed:((&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;float&lt;/span&gt;&lt;span style="color: #000000;"&gt;)((rgbValue &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0xFF0000&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;16&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #800080;"&gt;255.0&lt;/span&gt;&lt;span style="color: #000000;"&gt; \&lt;br /&gt;                                    green:((&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;float&lt;/span&gt;&lt;span style="color: #000000;"&gt;)((rgbValue &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0xFF00&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;8&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #800080;"&gt;255.0&lt;/span&gt;&lt;span style="color: #000000;"&gt; \&lt;br /&gt;                                    blue:((&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;float&lt;/span&gt;&lt;span style="color: #000000;"&gt;)(rgbValue &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0xFF&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #800080;"&gt;255.0&lt;/span&gt;&lt;span style="color: #000000;"&gt; alpha:&lt;/span&gt;&lt;span style="color: #800080;"&gt;1.0&lt;/span&gt;&lt;span style="color: #000000;"&gt;]&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;RGB color macro with alpha&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;#define&lt;/span&gt;&lt;span style="color: #000000;"&gt; UIColorFromRGBWithAlpha(rgbValue,a) [UIColor \&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                                                colorWithRed:((&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;float&lt;/span&gt;&lt;span style="color: #000000;"&gt;)((rgbValue &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0xFF0000&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;16&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #800080;"&gt;255.0&lt;/span&gt;&lt;span style="color: #000000;"&gt; \&lt;br /&gt;                                                green:((&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;float&lt;/span&gt;&lt;span style="color: #000000;"&gt;)((rgbValue &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0xFF00&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;8&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #800080;"&gt;255.0&lt;/span&gt;&lt;span style="color: #000000;"&gt; \&lt;br /&gt;                                                blue:((&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;float&lt;/span&gt;&lt;span style="color: #000000;"&gt;)(rgbValue &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0xFF&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #800080;"&gt;255.0&lt;/span&gt;&lt;span style="color: #000000;"&gt; alpha:a]&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;img src="http://www.cnblogs.com/kaixuan/aggbug/2093731.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/kaixuan/archive/2011/06/29/2093731.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/kaixuan/archive/2011/06/15/2081389.html</id><title type="text">先随便记一下</title><summary type="text">View Code /** ===== NSString ===== */NSString* string = @&amp;quot;hello, 1901&amp;quot;;NSLog(@&amp;quot;string retainCount: %lu&amp;quot;, [string retainCount]);// output: string retainCount: 1152921504606846975NSString* string = [[NSString alloc] initWithString:@&amp;quot;hello, 1901&amp;quot;];NSLog(@&amp;quot;string retai</summary><published>2011-06-15T04:32:00Z</published><updated>2011-06-15T04:32:00Z</updated><author><name>1901</name><uri>http://www.cnblogs.com/kaixuan/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kaixuan/archive/2011/06/15/2081389.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kaixuan/archive/2011/06/15/2081389.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('167f7898-67eb-4a51-9b57-9a70cd83b4a4')"&gt;&#xD;
&lt;div id="cnblogs_code_open_167f7898-67eb-4a51-9b57-9a70cd83b4a4" &gt;&#xD;
&lt;pre&gt;&lt;div&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;* ===== NSString ===== &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;NSString&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;hello, 1901&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;NSLog(&lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;string retainCount: %lu&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, [&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; retainCount]);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; output: string retainCount: 1152921504606846975&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;NSString&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; [[NSString alloc] initWithString:&lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;hello, 1901&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&lt;br /&gt;NSLog(&lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;string retainCount: %lu&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, [&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; retainCount]);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; output: string retainCount: 1152921504606846975&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;NSString&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; [[NSString alloc] initWithFormat:&lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;%@&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;hello, 1901&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&lt;br /&gt;NSLog(&lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;string retainCount: %lu&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, [&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; retainCount]);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; output: string retainCount: 1&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;NSString&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; [[NSString alloc] initWithUTF8String:&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;hello, 1901&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&lt;br /&gt;NSLog(&lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;string retainCount: %lu&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, [&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; retainCount]);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; output: string retainCount: 1&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;* ===== NSMutableArray &amp;amp; NSArray ===== &lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;NSMutableArray&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; array &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; [[NSMutableArray alloc] init];&lt;br /&gt;NSLog(&lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;array retainCount: %lu&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, [array retainCount]);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; array retainCount: 1&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;NSArray&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; array &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; [[NSArray alloc] init];&lt;br /&gt;NSLog(&lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;array retainCount: %lu&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, [array retainCount]);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; output:    array retainCount: 2&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;NSArray&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; array &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; [[NSArray alloc] initWithObjects:&lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;hello, 1901&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, nil];&lt;br /&gt;NSLog(&lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;array retainCount: %lu&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, [array retainCount]);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; output: array retainCount: 1&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;NSArray&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; array1 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; [[NSArray alloc] init];&lt;br /&gt;NSLog(&lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;array1 retainCount: %p&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, array1);&lt;br /&gt;NSArray&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; array2 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; [[NSArray alloc] init];&lt;br /&gt;NSLog(&lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;array2 retainCount: %p&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, array2);&lt;br /&gt;NSArray&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; array3 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; [[NSArray alloc] init];&lt;br /&gt;NSLog(&lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;array3 retainCount: %p&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, array3);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;output:&lt;br /&gt;array1 retainCount: 0x10010d050&lt;br /&gt;array2 retainCount: 0x10010d050&lt;br /&gt;array3 retainCount: 0x10010d050&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;NSString&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; [NSString stringWithUTF8String:&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;hello, 1901&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&lt;br /&gt;NSArray&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; array1 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; [[NSArray alloc] initWithObjects:&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;, nil];&lt;br /&gt;NSLog(&lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;array1 retainCount: %p&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, array1);&lt;br /&gt;NSArray&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; array2 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; [[NSArray alloc] initWithObjects:&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;, nil];&lt;br /&gt;NSLog(&lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;array2 retainCount: %p&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, array2);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;output:&lt;br /&gt;array1 retainCount: 0x1001107c0&lt;br /&gt;array2 retainCount: 0x100110840&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;br /&gt;&lt;img src="http://www.cnblogs.com/kaixuan/aggbug/2081389.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/kaixuan/archive/2011/06/15/2081389.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/kaixuan/archive/2011/05/31/2064796.html</id><title type="text">iOS中获取程序相关的一些目录路径</title><summary type="text">// 获取程序Documents目录路径NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);NSString *documentsDirectory = [paths objectAtIndex:0];// 获取程序app文件所在目录路径NSHomeDirectory();// 获取程序tmp目录路径NSTemporaryDirectory();// 获取程序应用包路径[[NSBundle mainBundle] resourcePath];或[[NSBu</summary><published>2011-05-31T08:15:00Z</published><updated>2011-05-31T08:15:00Z</updated><author><name>1901</name><uri>http://www.cnblogs.com/kaixuan/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kaixuan/archive/2011/05/31/2064796.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kaixuan/archive/2011/05/31/2064796.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;pre&gt;&lt;div&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 获取程序Documents目录路径&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;NSArray &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt;paths &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);&lt;br /&gt;NSString &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt;documentsDirectory &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; [paths objectAtIndex:&lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 获取程序app文件所在目录路径&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;NSHomeDirectory();&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 获取程序tmp目录路径&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;NSTemporaryDirectory();&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 获取程序应用包路径&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;[[NSBundle mainBundle] resourcePath];&lt;br /&gt;或&lt;br /&gt;[[NSBundle mainBundle] pathForResource: &lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;info&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; ofType: &lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;txt&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;&lt;meta charset="utf-8" /&gt;&#xD;
另外对于文件一些主要操作主要是通过NSFileManage 来完成，可以通过 [NSFileManger defaultManger] 得到它得实例。&lt;/p&gt;&#xD;
&lt;p&gt;如：创建目录、重命名文件、获取目录下的文件名、删除文件、删除目录等。&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;其他：&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在使用的时候我准备向NSHomeDirectory()获取到的目录中写一个文件但是失败了。&lt;/p&gt;&#xD;
&lt;p&gt;后来写到Documents目录中了，不知道是iOS的限制还是什么，文件不能写到NSHomeDirectory()目录下。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/kaixuan/aggbug/2064796.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/kaixuan/archive/2011/05/31/2064796.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/kaixuan/archive/2011/05/26/2059345.html</id><title type="text">mac字典词库增加方法</title><summary type="text">1、使用方法http://mac.linsheng.me/archives/309.html2、工具下载http://code.google.com/p/mac-dictionary-kit/3、词库下载http://yeelou.com/huzheng/stardict-dic/zh_CN/4、安装使用方法一文中使用的是1.0版本的安装工具，具体安装方法可以参见此链接的文章。我下载的是2.0的版本，安装方法很简单，将下载的词库(不用解压)直接拖入工具的窗口上，等待词库安装完毕即可。</summary><published>2011-05-26T15:19:00Z</published><updated>2011-05-26T15:19:00Z</updated><author><name>1901</name><uri>http://www.cnblogs.com/kaixuan/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kaixuan/archive/2011/05/26/2059345.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kaixuan/archive/2011/05/26/2059345.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: 12px;"&gt;1、使用方法&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;a href="http://mac.linsheng.me/archives/309.html" target="_blank"&gt;http://mac.linsheng.me/archives/309.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: 12px;"&gt;2、工具下载&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;a href="http://code.google.com/p/mac-dictionary-kit/" target="_blank"&gt;http://code.google.com/p/mac-dictionary-kit/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: 12px;"&gt;3、词库下载&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 12px;"&gt;&lt;a href="http://yeelou.com/huzheng/stardict-dic/zh_CN/" target="_blank"&gt;http://yeelou.com/huzheng/stardict-dic/zh_CN/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: 12px;"&gt;4、安装&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 12px;"&gt;使用方法一文中使用的是1.0版本的安装工具，具体安装方法可以参见此链接的文章。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: 12px;"&gt;我下载的是2.0的版本，安装方法很简单，将下载的词库(不用解压)直接拖入工具的窗口上，等待词库安装完毕即可。&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/kaixuan/aggbug/2059345.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/kaixuan/archive/2011/05/26/2059345.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/kaixuan/archive/2011/05/12/2044311.html</id><title type="text">Google的Logo记现代舞先驱玛莎&amp;#183;葛兰姆117周年诞辰-Flash版</title><summary type="text">Google的这个logo看着感觉很不错，google官方是用CSS+Javascript实现的，后来看博客园的很多朋友也照着实现了（其中一个），于是我用AS3实现了一个flash版的。 其实我觉得牛的不是这个技术，而是这个动画的动作设计很棒。效果预览：图片下载：直接另存为下载，如果链接失效，可从底部下载源码，源码中也包含此图片。实现代码：package{	import flash.display.Bitmap;	import flash.display.BitmapData;	import flash.display.MovieClip;	import flash.display.Sprit</summary><published>2011-05-12T06:07:00Z</published><updated>2011-05-12T06:07:00Z</updated><author><name>1901</name><uri>http://www.cnblogs.com/kaixuan/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kaixuan/archive/2011/05/12/2044311.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kaixuan/archive/2011/05/12/2044311.html"/><content type="html">&lt;div&gt;Google的这个logo看着感觉很不错，google官方是用CSS+Javascript实现的，后来看博客园的很多朋友也照着实现了（&lt;a target="_blank" href="http://www.cnblogs.com/eric6/archive/2011/05/11/2043327.html"&gt;其中一个&lt;/a&gt;），于是我用AS3实现了一个flash版的。 其实我觉得牛的不是这个技术，而是这个动画的动作设计很棒。&lt;/div&gt;&#xD;
&lt;div&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;strong&gt;效果预览：&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;object height="160" width="420" style="width: 420px; height: 160px;" data="http://files.cnblogs.com/kaixuan/flex/google/google_logo_20110511.swf" type="application/x-shockwave-flash"&gt;&#xD;
&lt;param name="data" value="http://files.cnblogs.com/kaixuan/flex/google/google_logo_20110511.swf" /&gt;&lt;param name="src" value="http://files.cnblogs.com/kaixuan/flex/google/google_logo_20110511.swf" /&gt;&lt;/object&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;图片下载：&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;直接另存为下载，如果链接失效，可从底部下载源码，源码中也包含此图片。&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://www.front2end.cn/wp-content/uploads/graham11-hp-sprite.png" border="0" width="500" height="500" /&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;实现代码：&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;div &gt;&#xD;
&lt;pre &gt;package&#xD;
{&#xD;
	import flash.display.Bitmap;&#xD;
	import flash.display.BitmapData;&#xD;
	import flash.display.MovieClip;&#xD;
	import flash.display.Sprite;&#xD;
	import flash.display.StageScaleMode;&#xD;
	import flash.events.Event;&#xD;
	import flash.geom.Point;&#xD;
	import flash.geom.Rectangle;&#xD;
	&#xD;
	[SWF(backgroundColor=0xffffff, width="420", height="160", frameRate="16")]&#xD;
	public class google_logo_20110511 extends Sprite&#xD;
	{&#xD;
		private var animationInfo:Array = [&#xD;
			[307,48,88,89,0,0],&#xD;
			[307,48,89,89,88,0],&#xD;
			[307,48,91,89,177,0],&#xD;
			[305,49,93,89,268,0],&#xD;
			[305,50,93,88,361,0],&#xD;
			[305,50,93,88,454,0],&#xD;
			[306,52,92,86,547,0],&#xD;
			[305,53,93,84,639,0],&#xD;
			[305,54,94,83,732,0],&#xD;
			[306,54,93,83,826,0],&#xD;
			[307,54,92,83,919,0],&#xD;
			[307,54,92,83,1011,0],&#xD;
			[308,54,90,83,1103,0],&#xD;
			[308,54,90,83,1193,0],&#xD;
			[306,53,91,84,1283,0],&#xD;
			[306,53,91,84,1374,0],&#xD;
			[308,53,90,84,1465,0],&#xD;
			[308,53,90,84,1555,0],&#xD;
			[305,53,92,84,1645,0],&#xD;
			[305,52,92,85,1737,0],&#xD;
			[306,52,91,85,1829,0],&#xD;
			[308,51,88,87,1920,0],&#xD;
			[308,50,88,88,0,89],&#xD;
			[308,49,88,88,88,89],&#xD;
			[307,49,89,88,176,89],&#xD;
			[307,50,89,87,265,89],&#xD;
			[308,51,89,86,354,89],&#xD;
			[307,54,90,83,443,89],&#xD;
			[307,57,90,80,533,89],&#xD;
			[306,58,92,79,623,89],&#xD;
			[306,58,92,79,715,89],&#xD;
			[305,60,92,77,807,89],&#xD;
			[302,61,95,76,899,89],&#xD;
			[302,63,95,74,994,89],&#xD;
			[302,51,96,86,1089,89],&#xD;
			[302,66,98,71,1185,89],&#xD;
			[304,67,96,69,1283,89],&#xD;
			[301,63,96,74,1379,89],&#xD;
			[301,58,93,79,1475,89],&#xD;
			[291,52,94,85,1568,89],&#xD;
			[288,50,71,88,1662,89],&#xD;
			[285,43,76,95,1733,89],&#xD;
			[285,37,70,101,1809,89],&#xD;
			[281,29,55,109,1879,89],&#xD;
			[278,20,58,119,1934,89],&#xD;
			[278,20,55,119,1992,89],&#xD;
			[277,12,121,127,0,208],&#xD;
			[271,2,122,138,121,208],&#xD;
			[267,1,126,139,243,208],&#xD;
			[264,0,136,140,369,208],&#xD;
			[260,0,141,140,505,208],&#xD;
			[255,0,148,140,646,208],&#xD;
			[252,0,151,140,794,208],&#xD;
			[249,2,121,138,945,208],&#xD;
			[247,3,123,137,1066,208],&#xD;
			[246,3,123,137,1189,208],&#xD;
			[246,2,124,137,1312,208],&#xD;
			[258,2,112,137,1436,208],&#xD;
			[263,2,106,137,1548,208],&#xD;
			[263,2,106,137,1654,208],&#xD;
			[262,2,103,137,1760,208],&#xD;
			[260,2,104,136,1863,208],&#xD;
			[260,2,104,137,1967,208],&#xD;
			[268,2,98,137,0,348],&#xD;
			[267,2,99,137,98,348],&#xD;
			[266,2,97,137,197,348],&#xD;
			[266,3,96,136,294,348],&#xD;
			[264,3,99,136,390,348],&#xD;
			[263,3,100,136,489,348],&#xD;
			[261,3,100,136,589,348],&#xD;
			[259,2,138,137,689,348],&#xD;
			[254,2,126,137,827,348],&#xD;
			[247,2,101,136,953,348],&#xD;
			[240,2,108,136,1054,348],&#xD;
			[238,1,110,137,1162,348],&#xD;
			[230,1,118,138,1272,348],&#xD;
			[220,15,128,124,1390,348],&#xD;
			[211,18,137,121,1518,348],&#xD;
			[205,43,102,96,1655,348],&#xD;
			[202,45,104,93,1757,348],&#xD;
			[200,38,97,101,1861,348],&#xD;
			[198,38,104,101,1958,348],&#xD;
			[197,39,107,100,0,486],&#xD;
			[197,39,112,100,107,486],&#xD;
			[213,39,94,110,219,486],&#xD;
			[212,40,95,111,313,486],&#xD;
			[211,41,97,111,408,486],&#xD;
			[209,42,99,112,505,486],&#xD;
			[209,43,98,112,604,486],&#xD;
			[213,43,87,112,702,486],&#xD;
			[213,42,83,113,789,486],&#xD;
			[211,40,86,109,872,486],&#xD;
			[211,38,86,103,958,486],&#xD;
			[211,37,88,112,1044,486],&#xD;
			[211,20,186,131,1132,486],&#xD;
			[213,27,167,122,1318,486],&#xD;
			[212,44,87,105,1485,486],&#xD;
			[210,44,88,98,1572,486],&#xD;
			[195,44,106,98,1660,486],&#xD;
			[189,44,110,98,1766,486],&#xD;
			[182,46,117,99,1876,486],&#xD;
			[173,44,118,96,1993,486],&#xD;
			[161,43,130,99,0,617],&#xD;
			[154,42,137,97,130,617],&#xD;
			[153,42,137,97,267,617],&#xD;
			[153,42,137,97,404,617],&#xD;
			[152,41,137,98,541,617],&#xD;
			[151,41,137,97,678,617],&#xD;
			[149,41,145,97,815,617],&#xD;
			[148,25,144,114,960,617],&#xD;
			[148,13,144,126,1104,617],&#xD;
			[141,12,153,127,1248,617],&#xD;
			[115,11,173,128,1401,617],&#xD;
			[108,7,180,133,1574,617],&#xD;
			[108,4,180,136,1754,617],&#xD;
			[108,3,176,137,1934,617],&#xD;
			[108,1,161,139,0,754],&#xD;
			[105,1,235,138,161,754],&#xD;
			[103,1,295,148,396,754],&#xD;
			[103,0,277,149,691,754],&#xD;
			[108,0,234,137,968,754],&#xD;
			[101,0,232,137,1202,754],&#xD;
			[99,0,135,139,1434,754],&#xD;
			[95,0,244,139,1569,754],&#xD;
			[81,0,152,139,1813,754],&#xD;
			[69,0,164,139,1965,754],&#xD;
			[66,0,169,139,0,903],&#xD;
			[65,0,170,139,169,903],&#xD;
			[63,0,168,138,339,903],&#xD;
			[61,0,159,138,507,903],&#xD;
			[35,0,304,139,666,903],&#xD;
			[19,0,189,140,970,903],&#xD;
			[18,11,138,129,1159,903],&#xD;
			[18,11,137,129,1297,903],&#xD;
			[18,11,137,128,1434,903],&#xD;
			[18,6,135,133,1571,903],&#xD;
			[7,4,146,136,1706,903],&#xD;
			[6,4,147,136,1852,903],&#xD;
			[3,4,150,136,1999,903],&#xD;
			[3,5,150,135,0,1043],&#xD;
			[3,8,150,132,150,1043],&#xD;
			[4,6,394,145,300,1043],&#xD;
			[12,6,388,145,694,1043],&#xD;
			[11,8,389,144,1082,1043],&#xD;
			[11,8,387,144,1471,1043],&#xD;
			[11,8,387,143,1858,1043],&#xD;
			[10,8,113,131,0,1188],&#xD;
			[11,8,111,131,113,1188],&#xD;
			[10,9,112,130,224,1188],&#xD;
			[12,9,116,130,336,1188],&#xD;
			[12,9,111,130,452,1188],&#xD;
			[12,9,111,130,563,1188],&#xD;
			[12,9,110,131,674,1188],&#xD;
			[12,34,113,106,784,1188],&#xD;
			[13,35,110,104,897,1188]&#xD;
		];&#xD;
		&#xD;
		[Embed(source="google_logo.png")]&#xD;
		private var logo:Class;&#xD;
		private var mcs:Array		= [];&#xD;
		private var playIndex:int	= 0;&#xD;
		&#xD;
		public function google_logo_20110511()&#xD;
		{&#xD;
			this.stage.scaleMode = StageScaleMode.NO_SCALE;&#xD;
			&#xD;
			var logoBitmap:Bitmap = new logo();&#xD;
			&#xD;
			for each(var info:Array in animationInfo)&#xD;
			{&#xD;
				var bitmap:Bitmap = getBitmapFromBitmapData(logoBitmap.bitmapData, &#xD;
					info[4],&#xD;
					info[5],&#xD;
					info[2],&#xD;
					info[3]);&#xD;
				&#xD;
				var mc:MovieClip = new MovieClip();&#xD;
				mc.addChild(bitmap);&#xD;
				mc.x = info[0];&#xD;
				mc.y = info[1];&#xD;
				&#xD;
				mcs.push(mc);&#xD;
			}&#xD;
			&#xD;
			this.addEventListener(Event.ENTER_FRAME, onEnterFrame);&#xD;
		}&#xD;
&#xD;
		private function onEnterFrame(event:Event):void&#xD;
		{&#xD;
			if(playIndex &amp;lt; mcs.length)&#xD;
			{&#xD;
				var mc:MovieClip = mcs[playIndex] as MovieClip;&#xD;
				addChild(mc);&#xD;
				playIndex++;&#xD;
			}&#xD;
			else&#xD;
			{&#xD;
				this.addEventListener(Event.ENTER_FRAME, onEnterFrame);&#xD;
			}&#xD;
		}&#xD;
		&#xD;
		private function getBitmapFromBitmapData(bitmapData:BitmapData, x:int, y:int, width:int, height:int):Bitmap&#xD;
		{&#xD;
			var bitmap:Bitmap = new Bitmap();&#xD;
			bitmap.bitmapData = new BitmapData(width, height);&#xD;
			&#xD;
			bitmap.bitmapData.copyPixels(bitmapData, &#xD;
				new Rectangle(x, y, width, height),&#xD;
				new Point(0, 0));&#xD;
				&#xD;
			return bitmap;&#xD;
		}&#xD;
	}&#xD;
}&#xD;
&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;最后说明一下代码中数组的数据来源于: &lt;a target="_blank" href="http://www.cnblogs.com/eric6/archive/2011/05/11/2043327.html"&gt;http://www.cnblogs.com/eric6/archive/2011/05/11/2043327.html&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a title="源码下载" href="http://files.cnblogs.com/kaixuan/flex/google/google_logo_20110511.zip"&gt;源码下载&lt;/a&gt;（源码中包含图片文件）&lt;/p&gt;&lt;img src="http://www.cnblogs.com/kaixuan/aggbug/2044311.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/kaixuan/archive/2011/05/12/2044311.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/kaixuan/archive/2011/04/12/2013733.html</id><title type="text">关于flash加载flash时的缩放和位置问题</title><summary type="text">在做flash开发的时候经常会遇到需要加载外部的其它flash，在加载的时候有可能会出现各种各样的问题，如加载进来的flash会自动缩放或者不会自动缩放或者缩放的方式不对，总之跟你想样的效果就是不一样。又或者加载进来的flash位置不始终不动，设置x和y坐标也不能把它定位到你想要的位置上。如果碰到以上问题时，建议看下下面两篇文章，相信你的疑惑会随之解除。 最后感谢下原文作者的经验分享。 Set Registration point in AS3http://flashscript.ca/set-registration-as3.phpStretch Your SWF with Stage.S.</summary><published>2011-04-12T07:30:00Z</published><updated>2011-04-12T07:30:00Z</updated><author><name>1901</name><uri>http://www.cnblogs.com/kaixuan/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kaixuan/archive/2011/04/12/2013733.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kaixuan/archive/2011/04/12/2013733.html"/><content type="html">&lt;p&gt;在做flash开发的时候经常会遇到需要加载外部的其它flash，在加载的时候有可能会出现各种各样的问题，如加载进来的flash会自动缩放或者不会自动缩放或者缩放的方式不对，总之跟你想样的效果就是不一样。又或者加载进来的flash位置不始终不动，设置x和y坐标也不能把它定位到你想要的位置上。如果碰到以上问题时，建议看下下面两篇文章，相信你的疑惑会随之解除。&lt;/p&gt;&lt;p&gt;最后感谢下原文作者的经验分享。 &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;strong&gt;Set Registration point in AS3&lt;/strong&gt;&lt;br /&gt;&lt;a target="_blank" href="http://flashscript.ca/set-registration-as3.php"&gt;http://flashscript.ca/set-registration-as3.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Stretch Your SWF with Stage.ScaleMode &lt;/strong&gt;&lt;br /&gt;&lt;a target="_blank" href="http://active.tutsplus.com/tutorials/actionscript/quick-tip-stretch-your-swf-with-stage-scalemode/"&gt;http://active.tutsplus.com/tutorials/actionscript/quick-tip-stretch-your-swf-with-stage-scalemode/&lt;/a&gt;&lt;img src="http://www.cnblogs.com/kaixuan/aggbug/2013733.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/kaixuan/archive/2011/04/12/2013733.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/kaixuan/archive/2011/04/11/2012894.html</id><title type="text">给力壁纸 for mac</title><summary type="text">近日在小众软件得知到一个网站，http://www.wordsmotivate.me/，网站名字很有特点-给力壁纸。他网站上的壁纸也的确很给力，每日以日志形式更新一副，每副壁纸上都有一句给力的文字。并且在windows下提供了一个软件，可以自动检测更新并应用为桌面壁纸，linux也提供了一个脚本，唯独没有MAC版的。所以自己写了个小工具，每天开机下载最新给力壁纸并设为桌面（已得到给力站长允许），然后软件自动退出，功能比较简单，就没有做任何界面。这个小程序有以下三个特点：1、因为这个程序每天的工作时间大概也就5秒钟，所以我没有做成常驻内存的程序，程序工作完后会自动退出。2、因为程序工作完就会自动</summary><published>2011-04-11T13:08:00Z</published><updated>2011-04-11T13:08:00Z</updated><author><name>1901</name><uri>http://www.cnblogs.com/kaixuan/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kaixuan/archive/2011/04/11/2012894.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kaixuan/archive/2011/04/11/2012894.html"/><content type="html">近日在小众软件得知到一个网站，&lt;a target="_blank" href="http://www.wordsmotivate.me/"&gt;http://www.wordsmotivate.me/&lt;/a&gt;，网站名字很有特点-给力壁纸。&lt;br /&gt;&#xD;
他网站上的壁纸也的确很给力，每日以日志形式更新一副，每副壁纸上都有一句给力的文字。&lt;br /&gt;&#xD;
并且在windows下提供了一个软件，可以自动检测更新并应用为桌面壁纸，linux也提供了一个脚本，唯独没有MAC版的。&lt;br /&gt;&#xD;
所以自己写了个小工具，每天开机下载最新给力壁纸并设为桌面（已得到给力站长允许），然后软件自动退出，功能比较简单，就没有做任何界面。&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
这个小程序有以下三个特点：&lt;br /&gt;&#xD;
1、因为这个程序每天的工作时间大概也就5秒钟，所以我没有做成常驻内存的程序，程序工作完后会自动退出。&lt;br /&gt;&#xD;
2、因为程序工作完就会自动退出，所以你没法通过程序设置任何选项，因此程序本身没有开机启动功能。&lt;br /&gt;&#xD;
&lt;p&gt;3、因为程序没有任何设置选项，所以程序也没有任何界面。&lt;/p&gt;&lt;p&gt;4、壁纸保存路径在&lt;span  style="font-family: 'lucida Grande', Verdana; line-height: 23px; "&gt;~/Pictures/1901/目录。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;【&lt;a href="http://files.cnblogs.com/kaixuan/soft/EverydayWallpaper.zip"&gt;附件下载&lt;/a&gt;】 &lt;br /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
建议通过MAC系统自带的登录项解决开机启动功能，如果哪天你不想用它了，直接从登录项中删除它即可。&lt;br /&gt;&#xD;
不会设置开机启动就跟着下面图片的步骤操作吧！&lt;br /&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/kaixuan/ew_1.jpg" border="0" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/kaixuan/ew_2.jpg" border="0" /&gt;&amp;nbsp;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/kaixuan/ew_3.jpg" border="0" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/kaixuan/aggbug/2012894.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/kaixuan/archive/2011/04/11/2012894.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/kaixuan/archive/2011/03/16/1986154.html</id><title type="text">【转载】巧用宏定义来简写C,C++代码</title><summary type="text">在Vimer的程序世界[http://www.vimer.cn]中看到这篇文章，对宏有了一个更深刻的了解，所以转载过来以便以后学习。============== 以下为转载内容==============今天在工作上遇到一个问题，觉得很有代表性，特抽象如下:通过设计模式的角度来说，就是模板方法，已经有一个基类，需要定义很多子类来实现其方法。但是类名都只有一部分不同，且构造函数的入参也只有一部分不同。如代码:#include&amp;lt;iostream&amp;gt;#include&amp;lt;string&amp;gt;#include&amp;lt;vector&amp;gt;#include&amp;lt;set&amp;gt;#include</summary><published>2011-03-16T08:01:00Z</published><updated>2011-03-16T08:01:00Z</updated><author><name>1901</name><uri>http://www.cnblogs.com/kaixuan/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kaixuan/archive/2011/03/16/1986154.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kaixuan/archive/2011/03/16/1986154.html"/><content type="html">&lt;p&gt;在&lt;span  style="color: #212121; font-family: Arial, Helvetica, Georgia, sans-serif; line-height: 26px; "&gt;&lt;a href="http://www.vimer.cn/" target="_top" style="color: #498bbf; text-decoration: none; "&gt;Vimer的程序世界&lt;/a&gt;&amp;nbsp;[&amp;nbsp;&lt;a href="http://www.vimer.cn/" target="_top" style="color: #498bbf; text-decoration: none; "&gt;http://www.vimer.cn&lt;/a&gt;&amp;nbsp;]中看到这篇文章，对宏有了一个更深刻的了解，所以转载过来以便以后学习。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;============== 以下为转载内容&amp;nbsp;==============&lt;/em&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;span style="color: #000000;"&gt;今天在工作上遇到一个问题，觉得很有代表性，&lt;/span&gt;&lt;span style="color: #008080;"&gt;特抽象如下:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;通过设计模式的角度来说，就是模板方法，已经有一个基类，需要定义很多子类来实现其方法。&lt;br /&gt;但是类名都只有一部分不同，且构造函数的入参也只有一部分不同。&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;如代码:&lt;/span&gt;&lt;font  color="#800080"&gt;&lt;br /&gt;&lt;/font&gt;#include&amp;nbsp;&amp;lt;iostream&amp;gt;&lt;br /&gt;#include&amp;nbsp;&amp;lt;string&amp;gt;&lt;br /&gt;#include&amp;nbsp;&amp;lt;vector&amp;gt;&lt;br /&gt;#include&amp;nbsp;&amp;lt;set&amp;gt;&lt;br /&gt;#include&amp;nbsp;&amp;lt;map&amp;gt;&lt;br /&gt;using&amp;nbsp;namespace&amp;nbsp;&lt;span style="color: #0000FF;"&gt;std&lt;/span&gt;&lt;span style="color: #008000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;class&amp;nbsp;EMA&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008080;"&gt;public:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EMA(string&amp;nbsp;a,string&amp;nbsp;b,string&amp;nbsp;c,string&amp;nbsp;d,string&amp;nbsp;e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;nbsp;&amp;lt;&amp;lt;a&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&amp;lt;b&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&amp;lt;c&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&amp;lt;d&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&amp;lt;e&amp;lt;&amp;lt;endl&lt;/span&gt;&lt;span style="color: #008000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/span&gt;&lt;span style="color: #008000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;class&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008080;"&gt;EMA4CGI_1ST:&lt;/span&gt;&lt;span style="color: #000000;"&gt;public&amp;nbsp;EMA{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008080;"&gt;public:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EMA4CGI_1ST():EMA(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;app_mng.1ST_EMA_AVG&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;app_mng.1ST_EMA_HWM&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;app_mng.1ST_EMA_TMO&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;app_mng.1ST_EMA_N&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;app_mng.1ST_EMA_RATIO&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;){}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;~EMA4CGI_1ST()&amp;nbsp;{}&lt;br /&gt;}&lt;/span&gt;&lt;span style="color: #008000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;class&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008080;"&gt;EMA4CGI_2ND:&lt;/span&gt;&lt;span style="color: #000000;"&gt;public&amp;nbsp;EMA{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008080;"&gt;public:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EMA4CGI_2ND():EMA(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;app_mng.2ND_EMA_AVG&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;app_mng.2ND_EMA_HWM&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;app_mng.2ND_EMA_TMO&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;app_mng.2ND_EMA_N&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;app_mng.2ND_EMA_RATIO&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;){}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;~EMA4CGI_2ND()&amp;nbsp;{}&lt;br /&gt;}&lt;/span&gt;&lt;span style="color: #008000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;class&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008080;"&gt;EMA4CGI_3RD:&lt;/span&gt;&lt;span style="color: #000000;"&gt;public&amp;nbsp;EMA{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008080;"&gt;public:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EMA4CGI_3RD():EMA(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;app_mng.3RD_EMA_AVG&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;app_mng.3RD_EMA_HWM&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;app_mng.3RD_EMA_TMO&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;app_mng.3RD_EMA_N&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;app_mng.3RD_EMA_RATIO&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;){}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;~EMA4CGI_3RD()&amp;nbsp;{}&lt;br /&gt;}&lt;/span&gt;&lt;span style="color: #008000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;main(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;argc,&amp;nbsp;const&amp;nbsp;char&amp;nbsp;*argv[])&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EMA4CGI_1ST()&lt;/span&gt;&lt;span style="color: #008000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EMA4CGI_2ND()&lt;/span&gt;&lt;span style="color: #008000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EMA4CGI_3RD()&lt;/span&gt;&lt;span style="color: #008000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #008000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;输出如下:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;app_mng.1ST_EMA_AVG,app_mng.1ST_EMA_HWM,app_mng.1ST_EMA_TMO,app_mng.1ST_EMA_N,app_mng.1ST_EMA_RATIO&lt;br /&gt;app_mng.2ND_EMA_AVG,app_mng.2ND_EMA_HWM,app_mng.2ND_EMA_TMO,app_mng.2ND_EMA_N,app_mng.2ND_EMA_RATIO&lt;br /&gt;app_mng.3RD_EMA_AVG,app_mng.3RD_EMA_HWM,app_mng.3RD_EMA_TMO,app_mng.3RD_EMA_N,app_mng.3RD_EMA_RATIO&lt;br /&gt;非常恶心的代码，而且非常容易写错，如果是python，由于其本身自省的能力，所以不会存在这样的问题，但是C++可没有这种能力，所以我们只能寄希望与宏定义了。&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;直接来看一下我们改写的代码:&lt;/span&gt;&lt;font  color="#800080"&gt;&lt;br /&gt;&lt;/font&gt;#include&amp;nbsp;&amp;lt;iostream&amp;gt;&lt;br /&gt;#include&amp;nbsp;&amp;lt;string&amp;gt;&lt;br /&gt;#include&amp;nbsp;&amp;lt;vector&amp;gt;&lt;br /&gt;#include&amp;nbsp;&amp;lt;set&amp;gt;&lt;br /&gt;#include&amp;nbsp;&amp;lt;map&amp;gt;&lt;br /&gt;using&amp;nbsp;namespace&amp;nbsp;&lt;span style="color: #0000FF;"&gt;std&lt;/span&gt;&lt;span style="color: #008000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;class&amp;nbsp;EMA&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008080;"&gt;public:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EMA(string&amp;nbsp;a,string&amp;nbsp;b,string&amp;nbsp;c,string&amp;nbsp;d,string&amp;nbsp;e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;nbsp;&amp;lt;&amp;lt;a&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&amp;lt;b&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&amp;lt;c&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&amp;lt;d&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&amp;lt;e&amp;lt;&amp;lt;endl&lt;/span&gt;&lt;span style="color: #008000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/span&gt;&lt;span style="color: #008000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;#define&amp;nbsp;EMACLASS_DEFINITION(class_name)\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;class&amp;nbsp;EMA4CGI_##&lt;/span&gt;&lt;span style="color: #008080;"&gt;class_name:&lt;/span&gt;&lt;span style="color: #000000;"&gt;public&amp;nbsp;EMA{\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008080;"&gt;public:&lt;/span&gt;&lt;span style="color: #000000;"&gt;\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EMA4CGI_##class_name():EMA(\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;app_mng.&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;#class_name&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;_EMA_AVG&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;app_mng.&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;#class_name&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;_EMA_HWM&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;app_mng.&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;#class_name&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;_EMA_TMO&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;app_mng.&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;#class_name&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;_EMA_N&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;app_mng.&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;#class_name&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;_EMA_RATIO&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;){}\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;~EMA4CGI_##class_name()&amp;nbsp;{}\&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;span style="color: #008000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;br /&gt;EMACLASS_DEFINITION(1ST)&lt;br /&gt;EMACLASS_DEFINITION(2ND)&lt;br /&gt;EMACLASS_DEFINITION(3RD)&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;main(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;argc,&amp;nbsp;const&amp;nbsp;char&amp;nbsp;*argv[])&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EMA4CGI_1ST()&lt;/span&gt;&lt;span style="color: #008000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EMA4CGI_2ND()&lt;/span&gt;&lt;span style="color: #008000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EMA4CGI_3RD()&lt;/span&gt;&lt;span style="color: #008000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #008000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;输入结果为:&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;app_mng.1ST_EMA_AVG,app_mng.1ST_EMA_HWM,app_mng.1ST_EMA_TMO,app_mng.1ST_EMA_N,app_mng.1ST_EMA_RATIO&lt;br /&gt;app_mng.2ND_EMA_AVG,app_mng.2ND_EMA_HWM,app_mng.2ND_EMA_TMO,app_mng.2ND_EMA_N,app_mng.2ND_EMA_RATIO&lt;br /&gt;app_mng.3RD_EMA_AVG,app_mng.3RD_EMA_HWM,app_mng.3RD_EMA_TMO,app_mng.3RD_EMA_N,app_mng.3RD_EMA_RATIO&lt;br /&gt;OK，问题解决！&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span  style="font-family: verdana, 'courier new'; font-size: 14px; "&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px; "&gt;可能问题本身在不同的场景下有多种解决方式，但是这至少提供了另一个看问题的角度，希望对大家有用。&lt;/span&gt;&lt;/span&gt;&lt;span  style="font-family: verdana, 'courier new'; font-size: 14px; "&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;font  face="'Courier New'" size="2"&gt;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;本文&lt;/em&gt;&lt;span  style="color: #212121; font-family: Arial, Helvetica, Georgia, sans-serif; font-style: italic; line-height: 26px; "&gt;转载自&lt;a href="http://www.vimer.cn/" target="_top" style="color: #498bbf; text-decoration: none; "&gt;Vimer的程序世界&lt;/a&gt;&amp;nbsp;[&amp;nbsp;&lt;a href="http://www.vimer.cn/" target="_top" style="color: #498bbf; text-decoration: none; "&gt;http://www.vimer.cn&lt;/a&gt;&amp;nbsp;]&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span  style="color: #212121; font-family: Arial, Helvetica, Georgia, sans-serif; font-style: italic; line-height: 26px; "&gt;原文链接地址:&amp;nbsp;&lt;a href="http://www.vimer.cn/2011/01/%e5%b7%a7%e7%94%a8%e5%ae%8f%e5%ae%9a%e4%b9%89%e6%9d%a5%e7%ae%80%e5%86%99%e4%bb%a3%e7%a0%81.html" target="_top" style="color: #498bbf; text-decoration: none; word-break: break-all; "&gt;http://www.vimer.cn/2011/01/%e5%b7%a7%e7%94%a8%e5%ae%8f%e5%ae%9a%e4%b9%89%e6%9d%a5%e7%ae%80%e5%86%99%e4%bb%a3%e7%a0%81.html&lt;/a&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/kaixuan/aggbug/1986154.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/kaixuan/archive/2011/03/16/1986154.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/kaixuan/archive/2011/03/15/1985511.html</id><title type="text">Objective-C中的NSObject对象经常使用到的方法</title><summary type="text">/*用于判断对象是不是参数提供的类型（参数可以是父类的class）参数示例:[NSObjectclass];*/-(BOOL)isKindOfClass:(Class)aClass;/*用于判断对象是不是参数提供的类型（参数不可以是父类的class）参数示例:[NSObjectclass];*/-(BOOL)isMemberOfClass:(Class)aClass;/*判断对象是否为指定类的子类*/+(BOOL)isSubclassOfClass:(Class)aClass;/*用于判断对象是否遵守了参数提供的协议参数示例:@protocol(UIApplicationDelegate)*/</summary><published>2011-03-15T15:25:00Z</published><updated>2011-03-15T15:25:00Z</updated><author><name>1901</name><uri>http://www.cnblogs.com/kaixuan/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kaixuan/archive/2011/03/15/1985511.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kaixuan/archive/2011/03/15/1985511.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&amp;nbsp;用于判断对象是不是参数提供的类型（参数可以是父类的class）&amp;nbsp;&lt;br /&gt;&amp;nbsp;参数示例:&amp;nbsp;[NSObject&amp;nbsp;class];&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(BOOL)isKindOfClass:(Class)aClass;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;用于判断对象是不是参数提供的类型（参数不可以是父类的class）&amp;nbsp;&lt;br /&gt;&amp;nbsp;参数示例:&amp;nbsp;[NSObject&amp;nbsp;class];&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(BOOL)isMemberOfClass:(Class)aClass;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&amp;nbsp;判断对象是否为指定类的子类&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(BOOL)isSubclassOfClass:(Class)aClass;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&amp;nbsp;用于判断对象是否遵守了参数提供的协议&amp;nbsp;&lt;br /&gt;&amp;nbsp;参数示例:&amp;nbsp;@protocol(UIApplicationDelegate)&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(BOOL)conformsToProtocol:(Protocol&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt;)aProtocol;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&amp;nbsp;用于判断对象是否拥有参数提供的方法&amp;nbsp;&lt;br /&gt;&amp;nbsp;参数示例:&amp;nbsp;@selector(test)&amp;nbsp;or&amp;nbsp;@selector(testById:)&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(BOOL)respondsToSelector:(SEL)aSelector;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&amp;nbsp;用于判断调用者的实例对象是否拥有提供的方法&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(BOOL)instancesRespondToSelector:(SEL)aSelector;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&amp;nbsp;延迟调用参数提供的方法，参数所需参数用withObject传入（类似于ActionScript3.0中的setTimeout函数）&lt;br /&gt;&amp;nbsp;delay单位：秒&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;)performSelector:(SEL)aSelector&amp;nbsp;withObject:(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;id&lt;/span&gt;&lt;span style="color: #000000;"&gt;)anArgument&amp;nbsp;afterDelay:(NSTimeInterval)delay;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/kaixuan/aggbug/1985511.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/kaixuan/archive/2011/03/15/1985511.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/kaixuan/archive/2011/03/02/1969072.html</id><title type="text">Objective-C属性介绍</title><summary type="text">我们知道在Objective-C中，使用@property配合@synthesize可以让编译器自动实现getter/setter方法，使用的时候也很方便，可以直接使用对象.属性的方法调用。NSString*name;NSUIntegerage;@property(nonatomic,copy)NSString*name;@property(assign)NSUIntegerage;@synthesizename;@synthesizeage;那如果我们想要对象.方法的方式来调用一个方法并获取到方法的返回值，那就需要使用@property配合@dynamic了。@property(readon</summary><published>2011-03-02T08:50:00Z</published><updated>2011-03-02T08:50:00Z</updated><author><name>1901</name><uri>http://www.cnblogs.com/kaixuan/</uri></author><link rel="alternate" href="http://www.cnblogs.com/kaixuan/archive/2011/03/02/1969072.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/kaixuan/archive/2011/03/02/1969072.html"/><content type="html">&lt;p&gt;我们知道在Objective-C中，使用@property配合@synthesize可以让编译器自动实现getter/setter方法，使用的时候也很方便，可以直接使用&lt;span style="color: red; "&gt;&lt;strong&gt;对象.属性&lt;/strong&gt;&lt;/span&gt;的方法调用。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;span style="color: #000000;"&gt;NSString&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name;&lt;br /&gt;NSUInteger&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;age;&lt;br /&gt;&lt;br /&gt;@property(nonatomic,copy)NSString&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name;&lt;br /&gt;@property(assign)NSUInteger&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;age;&lt;br /&gt;&lt;br /&gt;@synthesize&amp;nbsp;name;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span  style="font-family: verdana, 'courier new'; font-size: 14px; "&gt;&lt;span style="font-family: 'Courier New'; font-size: 13px; "&gt;@synthesize&amp;nbsp;age;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;font  face="'Courier New'" size="2"&gt;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;那如果我们想要&lt;span style="color: red; "&gt;&lt;strong&gt;对象.方法&lt;/strong&gt;&lt;/span&gt;的方式来调用一个方法并获取到方法的返回值，那就需要使用@property配合@dynamic了。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;span style="color: #000000;"&gt;@property(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;readonly&lt;/span&gt;&lt;span style="color: #000000;"&gt;)NSString&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;firstArrayValue;&lt;br /&gt;&lt;br /&gt;@dynamic&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;firstArrayValue;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(NSString&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt;)firstArrayValue&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;[_array&amp;nbsp;objectAtIndex:&lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;];&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;}&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;font  face="'Courier New'" size="2"&gt;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;这样就可以使用对象.firstArrayValue来获取到_array数组中的第一个值了，很显然，这种方法并不适用于需要传递参数的方法。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;其实使用@dynamic关键字是告诉编译器由我们自己来实现访问方法。&lt;/p&gt;&lt;p&gt;如果使用的是@synthesize，那么这个工作编译器就会帮你实现了。&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;说明：代码只为示例代码，实际使用时每句代码要放到相应位置的。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;font  color="#808080"&gt;&lt;strong&gt;&lt;div&gt;&lt;span style="color: #333333; font-family: verdana, ����, Arial; font-weight: normal; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #808080; "&gt;===== 最后转载下关于@property(*)括号中的属性内容介绍 =====&lt;/strong&gt;&lt;/p&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10pt; font-family: 'Times New Roman'; "&gt;readonly&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;此标记说明属性是只读的，默认的标记是读写，如果你指定了只读，在&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: 'Times New Roman'; "&gt;@implementation&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;中只需要一个读取器。或者如果你使用&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: 'Times New Roman'; "&gt;@synthesize&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;关键字，也是有读取器方法被解析。而且如果你试图使用点操作符为属性赋值，你将得到一个编译错误。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: 'Times New Roman'; "&gt;readwrite&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;此标记说明属性会被当成读写的，这也是默认属性。设置器和读取器都需要在&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: 'Times New Roman'; "&gt;@implementation&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;中实现。如果使用&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: 'Times New Roman'; "&gt;@synthesize&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;关键字，读取器和设置器都会被解析。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: 'Times New Roman'; "&gt;assign&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;此标记说明设置器直接进行赋值，这也是默认值。在使用垃圾收集的应用程序中，如果你要一个属性使用&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: 'Times New Roman'; "&gt;assign&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;，且这个类符合&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: 'Times New Roman'; "&gt;NSCopying&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;协议，你就要明确指出这个标记，而不是简单地使用默认值，否则的话，你将得到一个编译警告。这再次向编译器说明你确实需要赋值，即使它是可拷贝的。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: 'Times New Roman'; "&gt;retain&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;指定&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: Verdana; "&gt;retain&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;会在赋值时唤醒传入值的&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: Verdana; "&gt;retain&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;消息。此属性只能用于&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: Verdana; "&gt;Objective-C&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;对象类型，而不能用于&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: Verdana; "&gt;Core Foundation&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;对象。&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: Verdana; "&gt;(&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;原因很明显，&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: Verdana; "&gt;retain&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;会增加对象的引用计数，而基本数据类型或者&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: Verdana; "&gt;Core Foundation&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;对象都没有引用计数&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: Verdana; "&gt;&amp;#8212;&amp;#8212;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;译者注&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: Verdana; "&gt;)&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: 'Times New Roman'; "&gt;copy&lt;/span&gt;&lt;/strong&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;它指出，在赋值时使用传入值的一份拷贝。拷贝工作由&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: Verdana; "&gt;copy&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;方法执行，此属性只对那些实行了&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: Verdana; "&gt;NSCopying&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;协议的对象类型有效。更深入的讨论，请参考&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: Verdana; "&gt;&amp;#8220;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;复制&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: Verdana; "&gt;&amp;#8221;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; "&gt;部分。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: 'Times New Roman'; "&gt;nonatomic&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: STSong; "&gt;指出访问器不是原子操作，而默认地，访问器是原子操作。这也就是说，在多线程环境下，解析的访问器提供一个对属性的安全访问，从获取器得到的返回值或者通过设置器设置的值可以一次完成，即便是别的线程也正在对其进行访问。如果你不指定&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: Verdana; "&gt;nonatomic&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: STSong; "&gt;，在自己管理内存的环境中，解析的访问器保留并自动释放返回的值，如果指定了&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: Verdana; "&gt;nonatomic&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5; font-size: 10.5pt; font-family: STSong; "&gt;，那么访问器只是简单地返回这个值。&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/kaixuan/aggbug/1969072.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/kaixuan/archive/2011/03/02/1969072.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
