<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>[似水流年]</title>
	<atom:link href="http://www.kangka.net/feed" rel="self" type="application/rss+xml" />
	<link>http://www.kangka.net</link>
	<description>用此记录我生活的点点滴滴</description>
	<lastBuildDate>Mon, 16 Jan 2012 14:59:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Apache 虚拟主机 VirtualHost 配置</title>
		<link>http://www.kangka.net/2012/01/apache-%e8%99%9a%e6%8b%9f%e4%b8%bb%e6%9c%ba-virtualhost-%e9%85%8d%e7%bd%ae.html</link>
		<comments>http://www.kangka.net/2012/01/apache-%e8%99%9a%e6%8b%9f%e4%b8%bb%e6%9c%ba-virtualhost-%e9%85%8d%e7%bd%ae.html#comments</comments>
		<pubDate>Mon, 16 Jan 2012 14:59:32 +0000</pubDate>
		<dc:creator>Kangka</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[VirtualHost]]></category>

		<guid isPermaLink="false">http://www.kangka.net/?p=1040</guid>
		<description><![CDATA[虚拟主机 (Virtual Host) 是在同一台机器搭建属于不同域名或者基于不同 IP 的多个网站服务的技术. 可以为运行在同一物理机器上的各个网站指配不同的 IP 和端口, 也可让多个网站拥有不同的域名. Apache 是世界上使用最广的 Web 服务器, 从 1.1 版开始支持虚拟主机. 本文将讲解在不同服务器 (Redhat Enterprise Linux, Ubuntu Linux, Windows) 上使用 Apache 搭建虚拟主机来搭建多个网站. &#160; 主旨 本文旨在让读者知道如何在同一台机器上搭建多个网站, 并附带一些使用技巧. 以操作为主, 不会过多谈及原理. 目标 本文是写给拥有一定的服务器配置和管理技能, 工作中需要同时维护多个网站的网站主, 网站开发者和网络管理员. 如果你是互联网公司的配管工程师, 对计算机服务器原理和操作十分熟悉, 请忽视本文, &#8230; <a href="http://www.kangka.net/2012/01/apache-%e8%99%9a%e6%8b%9f%e4%b8%bb%e6%9c%ba-virtualhost-%e9%85%8d%e7%bd%ae.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="content clearfix">
<p><strong>虚拟主机 (Virtual Host)</strong> 是在同一台机器搭建属于不同域名或者基于不同 IP 的多个网站服务的技术. 可以为运行在同一物理机器上的各个网站指配不同的 IP 和端口, 也可让多个网站拥有不同的域名.</p>
<p>Apache 是世界上使用最广的 Web 服务器, 从 1.1 版开始支持虚拟主机. 本文将讲解在不同服务器 (Redhat Enterprise Linux, Ubuntu Linux, Windows) 上使用 Apache 搭建虚拟主机来搭建多个网站.</p>
<p>&nbsp;</p>
<h3>主旨</h3>
<p>本文旨在让读者知道如何在同一台机器上搭建多个网站, 并附带一些使用技巧. 以操作为主, 不会过多谈及原理.</p>
<h3>目标</h3>
<p>本文是写给拥有一定的服务器配置和管理技能, 工作中需要同时维护多个网站的网站主, 网站开发者和网络管理员. 如果你是互联网公司的配管工程师, 对计算机服务器原理和操作十分熟悉, 请忽视本文, 你不会在上面找到太多有价值的东西.</p>
<h3>Redhat Enterprise Linux</h3>
<p>Redhat Enterprise Linux (包括 CentOS Linux), 是使用最广的 Linux 服务器, 大量的网站应用都部署在其上.</p>
<p>1. 打开文件 /etc/httpd/conf/httpd.conf, 搜索 VirtualHost example, 找到代码如下:</p>
<div class="wp_syntax">
<div class="code">
<pre class="ini" style="font-family: monospace;">#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#&lt;VirtualHost *:<span>80</span>&gt;
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#&lt;/VirtualHost&gt;</pre>
</div>
</div>
<p>2. 仿照例子, 添加一段代码来指定某一域名的网站.</p>
<div class="wp_syntax">
<div class="code">
<pre class="ini" style="font-family: monospace;">#
# DocumentRoot 是网站文件存放的根目录
# ServerName 是网站域名, 需要跟 DNS 指向的域名一致
#
&lt;VirtualHost *:<span>80</span>&gt;
    ServerAdmin zhao.wuz@alibaba-inc.com
    DocumentRoot /var/www/httpdocs/demo_aliluna_com
    ServerName demo.aliluna.com
    ErrorLog logs/demo.aliluna.com-error.log
    CustomLog logs/demo.aliluna.com-access.log common
&lt;/VirtualHost&gt;</pre>
</div>
</div>
<p>3. 重启 httpd 服务, 执行以下语句.</p>
<div class="wp_syntax">
<div class="code">
<pre class="bash" style="font-family: monospace;">service httpd restart</pre>
</div>
</div>
<h3>Ubuntu Linux</h3>
<p>Ubuntu 在 Linux 各发行版中, 个人用户数量最多的. 很多人在本机和虚拟机中使用. 但 Ubuntu 和 Redhat 的 VirtualHost 设置方法不相同.</p>
<p>1. 打开目录 /etc/apache2/sites-available/, 发现 default 和 default-ssl 两个文件, 其中 default 是 http 虚拟主机服务的配置文件, default-ssl 是配置 https 服务使用的. 可以复制一份 default 文件. 并修改配置文件名, 文件名必须与域名一致 (如: demo.aliluna.com)</p>
<p>2. 打开新建的配置文件, 修改 DocumentRoot, ServerName 和对应的配置目录. 例子如下:</p>
<div class="wp_syntax">
<div class="code">
<pre class="ini" style="font-family: monospace;">#
# DocumentRoot 是网站文件存放的根目录
# ServerName 是网站域名, 需要跟 DNS 指向的域名一致
#
&lt;VirtualHost *:<span>80</span>&gt;
    ServerAdmin zhao.wuz@alibaba-inc.com
    DocumentRoot /var/www/httpdocs/demo_aliluna_com
    ServerName demo.aliluna.com
    ErrorLog $<span>{</span>APACHE_LOG_DIR<span>}</span>/demo.aliluna.com-error.log
    CustomLog $<span>{</span>APACHE_LOG_DIR<span>}</span>/demo.aliluna.com-access.log combined
&lt;/VirtualHost&gt;</pre>
</div>
</div>
<p>3. 通过 a2ensite 激活虚拟主机配置</p>
<div class="wp_syntax">
<div class="code">
<pre class="bash" style="font-family: monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> a2ensite demo.aliluna.com</pre>
</div>
</div>
<p>4. 打开目录 /etc/apache2/sites-enabled/, 你会发现所有激活的虚拟主机, 可以通过 a2dissite 进行注销</p>
<div class="wp_syntax">
<div class="code">
<pre class="bash" style="font-family: monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> a2dissite demo.aliluna.com</pre>
</div>
</div>
<p>5. 重启 Apache 服务, 激活虚拟主机</p>
<div class="wp_syntax">
<div class="code">
<pre class="bash" style="font-family: monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>apache2 restart</pre>
</div>
</div>
<h3>Windows</h3>
<p>Windows 是市场占有率最高的 PC 操作系统, 也是很多人的开发环境. 其 VirtualHost 配置方法与 Linux 上有些差异, 以下方式适合原生 Apache, XAMPP 和 WAMP 套件.</p>
<p>1. 打开目录 {Apache2 安装目录}\conf\extra\, 找到 httpd-vhosts.conf 文件.</p>
<p>2. 仿照例子, 添加一段代码来指定某一域名的网站.</p>
<div class="wp_syntax">
<div class="code">
<pre class="ini" style="font-family: monospace;">#
# DocumentRoot 是网站文件存放的根目录
# ServerName 是网站域名, 需要跟 DNS 指向的域名一致
#
&lt;VirtualHost *:<span>80</span>&gt;
    ServerAdmin zhao.wuz@alibaba-inc.com
    DocumentRoot <span style="color: #933;">"D:/workspace/php/demo_aliluna_com"</span>
    ServerName demo.aliluna.com
    ErrorLog <span style="color: #933;">"logs/demo.aliluna.com-error.log"</span>
    CustomLog <span style="color: #933;">"logs/demo.aliluna.com-access.log"</span> common
&lt;/VirtualHost&gt;</pre>
</div>
</div>
<p>3. 打开 httpd.conf 文件, 添加如下语句.</p>
<div class="wp_syntax">
<div class="code">
<pre class="ini" style="font-family: monospace;"># Virtual hosts
Include conf/extra/httpd-vhosts.conf</pre>
</div>
</div>
<p>4. 重启 Apache 服务.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.kangka.net/2012/01/apache-%e8%99%9a%e6%8b%9f%e4%b8%bb%e6%9c%ba-virtualhost-%e9%85%8d%e7%bd%ae.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Smarty error: unable to read resource,Smarty的错误 ： 无法读取资源</title>
		<link>http://www.kangka.net/2012/01/smarty-error-unable-to-read-resourcesmarty%e7%9a%84%e9%94%99%e8%af%af-%ef%bc%9a-%e6%97%a0%e6%b3%95%e8%af%bb%e5%8f%96%e8%b5%84%e6%ba%90.html</link>
		<comments>http://www.kangka.net/2012/01/smarty-error-unable-to-read-resourcesmarty%e7%9a%84%e9%94%99%e8%af%af-%ef%bc%9a-%e6%97%a0%e6%b3%95%e8%af%bb%e5%8f%96%e8%b5%84%e6%ba%90.html#comments</comments>
		<pubDate>Sun, 01 Jan 2012 08:54:21 +0000</pubDate>
		<dc:creator>Kangka</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Smarty]]></category>

		<guid isPermaLink="false">http://www.kangka.net/?p=1033</guid>
		<description><![CDATA[一般出现这种错误是smarty配置的问题，路径没有配置好！如下面这段代码是将会出现这样的错误： Warning: Smarty error: unable to read resource: “templates\smtl.html” inF:\wamp\www\shangage\smarty\Smarty.class.phpon line1095，无法读取资源，即无法读取smtl.html模版文件， &#60;?php  define(&#8216;base_path&#8217;,$_SERVER['DOCUMENT_ROOT']);//定义服务器的绝对路径  define(&#8216;smarty_path&#8217;,'\shangage\smarty\\&#8217;);//定义smarty目录的绝对路径  require base_path.smarty_path.&#8217;Smarty.class.php&#8217;;//加载Smarty类库文件  $smarty = new Smarty;//实例化一个smarty对象  //定义个目录的路径  $smarty-&#62;template_dir = base_path.smarty_path.&#8217;tmeplates\\&#8217;;  $smarty-&#62;compile_dir = base_path.smarty_path.&#8217;templates_c\\&#8217;;  $smarty-&#62;config_dir = base_path.smarty_path.&#8217;config\\&#8217;;  $smarty-&#62;cache_dir = base_path.smarty_path.&#8217;cache\\&#8217;;    $arr = array(1=&#62;&#8217;杨&#8217;,2=&#62;&#8217;君&#8217;,3=&#62;&#8217;华&#8217;,4=&#62;&#8217;杨君华&#8217;);  $smarty-&#62;assign(&#8216;title&#8217;,'smarty的第一次使用&#8217;);  $smarty-&#62;assign(&#8216;arr&#8217;,$arr);  $smarty-&#62;display(&#8216;templates\smtl.html&#8217;) &#8230; <a href="http://www.kangka.net/2012/01/smarty-error-unable-to-read-resourcesmarty%e7%9a%84%e9%94%99%e8%af%af-%ef%bc%9a-%e6%97%a0%e6%b3%95%e8%af%bb%e5%8f%96%e8%b5%84%e6%ba%90.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="color: #000000; font-size: 14px;">一般出现这种错误是smarty配置的问题，路径没有配置好！如下面这段代码是将会出现这样的错误：</span></p>
<p><span style="color: #000000; font-size: 14px;"><strong><span style="color: #701f99;">Warning</span></strong><span style="color: #701f99;">: Smarty error: unable to read resource: “templates\smtl.html” in</span><strong><span style="color: #701f99;">F:\wamp\www\shangage\smarty\Smarty.class.php</span></strong><span style="color: #701f99;">on line</span><strong><span style="color: #701f99;">1095，无法读取资源，即无法读取smtl.html模版文件，</span></strong></span></p>
<p><span style="font-size: 16px;">&lt;?php</span><br />
<span style="font-size: 16px;"> define(&#8216;base_path&#8217;,$_SERVER['DOCUMENT_ROOT']);//</span><span style="color: #ff0000; font-size: 16px;">定义服务器的绝对路径</span><br />
<span style="font-size: 16px;"> define(&#8216;smarty_path&#8217;,'\shangage\smarty\\&#8217;);//</span><span style="color: #ff0000; font-size: 16px;">定义smarty目录的绝对路径</span><br />
<span style="font-size: 16px;"> require base_path.smarty_path.&#8217;Smarty.class.php&#8217;;//</span><span style="color: #ff0000; font-size: 16px;">加载Smarty类库文件</span><br />
<span style="font-size: 16px;"> $smarty = new Smarty;//<span style="color: #ff0000;">实例化一个smarty对象</span></span><br />
<span style="font-size: 16px;"> //<span style="color: #ff0000;">定义个目录的路径</span></span><br />
<span style="font-size: 16px;"> $smarty-&gt;template_dir = base_path.smarty_path.&#8217;tmeplates\\&#8217;;</span><br />
<span style="font-size: 16px;"> $smarty-&gt;compile_dir = base_path.smarty_path.&#8217;templates_c\\&#8217;;</span><br />
<span style="font-size: 16px;"> $smarty-&gt;config_dir = base_path.smarty_path.&#8217;config\\&#8217;;</span><br />
<span style="font-size: 16px;"> $smarty-&gt;cache_dir = base_path.smarty_path.&#8217;cache\\&#8217;;</span><br />
<span style="font-size: 16px;"> </span><br />
<span style="font-size: 16px;"> $arr = array(1=&gt;&#8217;杨&#8217;,2=&gt;&#8217;君&#8217;,3=&gt;&#8217;华&#8217;,4=&gt;&#8217;杨君华&#8217;);</span><br />
<span style="font-size: 16px;"> $smarty-&gt;assign(&#8216;title&#8217;,'smarty的第一次使用&#8217;);</span><br />
<span style="font-size: 16px;"> $smarty-&gt;assign(&#8216;arr&#8217;,$arr);</span><br />
<span style="font-size: 16px;"> $smarty-&gt;display(&#8216;templates\smtl.html&#8217;)</span><br />
<span style="font-size: 16px;">?&gt;</span></p>
<p><span style="font-size: 16px;"><strong><span style="color: #701f99;">把templates\smtl.html改写成..\<span style="font-size: 16px;">templates\smtl.html,就可以调用模版文件。输出结果为：</span></span></strong></span></p>
<p> <span style="color: #701f99; font-size: 16px;">还可以把代码写成如下：</span></p>
<p><span style="color: #701f99; font-size: 16px;">&lt;?php<br />
 define(&#8216;base_path&#8217;,$_SERVER['DOCUMENT_ROOT']);//定义服务器的绝对路径<br />
 define(&#8216;smarty_path&#8217;,<span style="color: #ff0000;">&#8216;/shangage/smarty/&#8217;</span>);//定义smarty目录的绝对路径<br />
 require base_path.smarty_path.&#8217;Smarty.class.php&#8217;;//加载Smarty类库文件<br />
 $smarty = new Smarty;//实例化一个smarty对象<br />
 //定义个目录的路径<br />
 $smarty-&gt;template_dir = base_path.smarty_path.<span style="color: #ff0000;">&#8216;tmeplates/&#8217;;</span><br />
 $smarty-&gt;compile_dir = base_path.smarty_path.<span style="color: #ff0000;">&#8216;templates_c/&#8217;;</span><br />
 $smarty-&gt;config_dir = base_path.smarty_path.<span style="color: #ff0000;">&#8216;config/&#8217;;</span><br />
 $smarty-&gt;cache_dir = base_path.smarty_path.<span style="color: #ff0000;">&#8216;cache/&#8217;;</span><br />
  <br />
 $arr = array(1=&gt;&#8217;杨&#8217;,2=&gt;&#8217;君&#8217;,3=&gt;&#8217;华&#8217;,4=&gt;&#8217;杨君华&#8217;);<br />
 $smarty-&gt;assign(&#8216;title&#8217;,'smarty的第一次使用&#8217;);<br />
 $smarty-&gt;assign(&#8216;arr&#8217;,$arr);<br />
 $smarty-&gt;display(&#8216;<span style="color: #ff0000;">../templates/smtl.html&#8217;</span>)<br />
?&gt;</span></p>
<p><strong><span style="color: #1f7099; font-size: 16px;">注意：正斜杠 /     与反斜杠  \   是一样的，但是要注意：<span style="color: #ff0000;">反斜杠 \  在PHP中为转义字符，没有意义。如要输出单引号 &#8216;   则应该写成 \ &#8216;，因此 \\ &#8216;  实际上就是  / &#8216; 。注意，模版文件要与调用模版文件的字符集编码一样，否则也会出现上面的错误！</span></span></strong></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kangka.net/2012/01/smarty-error-unable-to-read-resourcesmarty%e7%9a%84%e9%94%99%e8%af%af-%ef%bc%9a-%e6%97%a0%e6%b3%95%e8%af%bb%e5%8f%96%e8%b5%84%e6%ba%90.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>开发语言判断器</title>
		<link>http://www.kangka.net/2011/12/%e5%bc%80%e5%8f%91%e8%af%ad%e8%a8%80%e5%88%a4%e6%96%ad%e5%99%a8.html</link>
		<comments>http://www.kangka.net/2011/12/%e5%bc%80%e5%8f%91%e8%af%ad%e8%a8%80%e5%88%a4%e6%96%ad%e5%99%a8.html#comments</comments>
		<pubDate>Tue, 06 Dec 2011 02:08:57 +0000</pubDate>
		<dc:creator>Kangka</dc:creator>
				<category><![CDATA[技术]]></category>

		<guid isPermaLink="false">http://www.kangka.net/?p=1028</guid>
		<description><![CDATA[开发语言判断器]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.kangka.net/upload/2011/12/kfyy.zip">开发语言判断器</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kangka.net/2011/12/%e5%bc%80%e5%8f%91%e8%af%ad%e8%a8%80%e5%88%a4%e6%96%ad%e5%99%a8.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone loadView 和 viewDidLoad的区别</title>
		<link>http://www.kangka.net/2011/11/iphone-loadview-%e5%92%8c-viewdidload%e7%9a%84%e5%8c%ba%e5%88%ab.html</link>
		<comments>http://www.kangka.net/2011/11/iphone-loadview-%e5%92%8c-viewdidload%e7%9a%84%e5%8c%ba%e5%88%ab.html#comments</comments>
		<pubDate>Sat, 12 Nov 2011 14:18:11 +0000</pubDate>
		<dc:creator>Kangka</dc:creator>
				<category><![CDATA[网海拾贝]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[Iphone]]></category>
		<category><![CDATA[loadView]]></category>
		<category><![CDATA[object-c]]></category>
		<category><![CDATA[viewDidLoad]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.kangka.net/?p=1026</guid>
		<description><![CDATA[loadView 和 viewDidLoad 是 iPhone 开发中肯定要用到的两个方法。 他们都可以用来在视图载入的时候初始化一些内容。 但是他们有什么区别呢？ &#160; viewDidLoad 方法只有当 view 从 nib 文件初始化的时候才被调用。viewDidLoad 用于初始化，加载时用到。 &#160; loadView 方法在控制器的 view 为 nil 的时候被调用。 此方法用于以编程的方式创建 view 的时候用到。loadView 是使用代码生成视图的时候，当视图第一次载入的时候调用的方法。用于使用（写）代码来实现控件。用于使用代码生成控件的函数。如： &#160; - ( void ) loadView { UIView *view = [ [ UIView &#8230; <a href="http://www.kangka.net/2011/11/iphone-loadview-%e5%92%8c-viewdidload%e7%9a%84%e5%8c%ba%e5%88%ab.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>loadView 和 viewDidLoad 是 iPhone 开发中肯定要用到的两个方法。 他们都可以用来在视图载入的时候初始化一些内容。 但是他们有什么区别呢？</p>
<p>&nbsp;</p>
<p>viewDidLoad 方法只有当 view 从 nib 文件初始化的时候才被调用。viewDidLoad 用于初始化，加载时用到。</p>
<p>&nbsp;</p>
<p>loadView 方法在控制器的 view 为 nil 的时候被调用。 此方法用于以编程的方式创建 view 的时候用到。loadView 是使用代码生成视图的时候，当视图第一次载入的时候调用的方法。用于使用（写）代码来实现控件。用于使用代码生成控件的函数。如：</p>
<p>&nbsp;</p>
<p><span style="color: #3366ff;">- ( void ) loadView {</span></p>
<p><span style="color: #3366ff;">UIView *view = [ [ UIView alloc] initWithFrame:[ UIScreen</span></p>
<p><span style="color: #3366ff;">mainScreen] .applicationFrame] ;</span></p>
<p><span style="color: #3366ff;">[ view setBackgroundColor:_color] ;</span></p>
<p><span style="color: #3366ff;">self.view = view;</span></p>
<p><span style="color: #3366ff;">[ view release] ;</span></p>
<p><span style="color: #3366ff;">}</span></p>
<p>&nbsp;</p>
<p>你在控制器中实现了 loadView 方法，那么你可能会在应用运行的某个时候被内存管理控制调用。 如果设备内存不足的时候， view 控制器会收到 didReceiveMemoryWarning 的消息。 默认的实现是检查当前控制器的 view 是否在使用。 如果它的 view 不在当前正在使用的 view hierarchy 里面，且你的控制器实现了 loadView 方法，那么这个 view 将被 release, loadView 方法将被再次调用来创建一个新的 view。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kangka.net/2011/11/iphone-loadview-%e5%92%8c-viewdidload%e7%9a%84%e5%8c%ba%e5%88%ab.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于网络部分（ Reachability、xml、json等）源码下载</title>
		<link>http://www.kangka.net/2011/11/%e5%85%b3%e4%ba%8e%e7%bd%91%e7%bb%9c%e9%83%a8%e5%88%86%ef%bc%88-reachability%e3%80%81xml%e3%80%81json%e7%ad%89%ef%bc%89%e6%ba%90%e7%a0%81%e4%b8%8b%e8%bd%bd.html</link>
		<comments>http://www.kangka.net/2011/11/%e5%85%b3%e4%ba%8e%e7%bd%91%e7%bb%9c%e9%83%a8%e5%88%86%ef%bc%88-reachability%e3%80%81xml%e3%80%81json%e7%ad%89%ef%bc%89%e6%ba%90%e7%a0%81%e4%b8%8b%e8%bd%bd.html#comments</comments>
		<pubDate>Thu, 10 Nov 2011 13:38:46 +0000</pubDate>
		<dc:creator>Kangka</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[Iphone]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.kangka.net/?p=1021</guid>
		<description><![CDATA[3292-111025111047]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.kangka.net/upload/2011/11/3292-111025111047.zip">3292-111025111047</a></p>
<div class="picview"></div>
<div class="picview"></div>
<div class="picview"></div>
<div class="picview"><a href="http://www.kangka.net/upload/2011/11/3292_111025111242_1.png"><img class="alignnone size-full wp-image-1022" title="3292_111025111242_1" src="http://www.kangka.net/upload/2011/11/3292_111025111242_1.png" alt="" width="338" height="434" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.kangka.net/2011/11/%e5%85%b3%e4%ba%8e%e7%bd%91%e7%bb%9c%e9%83%a8%e5%88%86%ef%bc%88-reachability%e3%80%81xml%e3%80%81json%e7%ad%89%ef%bc%89%e6%ba%90%e7%a0%81%e4%b8%8b%e8%bd%bd.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iOS5打开系统setting页面</title>
		<link>http://www.kangka.net/2011/11/ios5%e6%89%93%e5%bc%80%e7%b3%bb%e7%bb%9fsetting%e9%a1%b5%e9%9d%a2.html</link>
		<comments>http://www.kangka.net/2011/11/ios5%e6%89%93%e5%bc%80%e7%b3%bb%e7%bb%9fsetting%e9%a1%b5%e9%9d%a2.html#comments</comments>
		<pubDate>Thu, 10 Nov 2011 13:26:47 +0000</pubDate>
		<dc:creator>Kangka</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ios5]]></category>
		<category><![CDATA[Iphone]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.kangka.net/?p=1018</guid>
		<description><![CDATA[OS5的SDK现在可以直接打开setting页面了，以往的SDK则不可以，当时我还花了大量时间去实现，结果不了了之。 如果你想打开Location Services的setting页面，代码如下： [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]]; 如果想打开Twitter的设置： [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=TWITTER"]]; 如果想打开蓝牙的设置： [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&#38;path=Bluetooth"]]; 当然你还可以打开应用的设置： [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Apps&#38;path=Your+App+Display+Name"]]; Your+App+Display+Name是什么，你应懂的。 不过我试这个的时候没有打开应用的setting,反而打开的是系统setting页，不知道为何。]]></description>
			<content:encoded><![CDATA[<p>OS5的SDK现在可以直接打开setting页面了，以往的SDK则不可以，当时我还花了大量时间去实现，结果不了了之。 如果你想打开Location Services的setting页面，代码如下：</p>
<p>[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];</p>
<p>如果想打开Twitter的设置：</p>
<p>[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=TWITTER"]];</p>
<p>如果想打开蓝牙的设置： [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&amp;path=Bluetooth"]];</p>
<p>当然你还可以打开应用的设置： [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Apps&amp;path=Your+App+Display+Name"]];</p>
<p>Your+App+Display+Name是什么，你应懂的。 不过我试这个的时候没有打开应用的setting,反而打开的是系统setting页，不知道为何。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kangka.net/2011/11/ios5%e6%89%93%e5%bc%80%e7%b3%bb%e7%bb%9fsetting%e9%a1%b5%e9%9d%a2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>类型转换</title>
		<link>http://www.kangka.net/2011/11/%e7%b1%bb%e5%9e%8b%e8%bd%ac%e6%8d%a2-2.html</link>
		<comments>http://www.kangka.net/2011/11/%e7%b1%bb%e5%9e%8b%e8%bd%ac%e6%8d%a2-2.html#comments</comments>
		<pubDate>Thu, 10 Nov 2011 13:23:18 +0000</pubDate>
		<dc:creator>Kangka</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[Iphone]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.kangka.net/?p=1015</guid>
		<description><![CDATA[Convert NSString to int view sourceprint? NSString *aNumberString = @”123&#8243;; int i = [aNumberString intValue]; Convert int to NSString view sourceprint? int aNumber = 123; NSString *aString = [NSString stringWithFormat:@"%d", aNumber];]]></description>
			<content:encoded><![CDATA[<p>Convert NSString to int view sourceprint?</p>
<p>NSString *aNumberString = @”123&#8243;;</p>
<p>int i = [aNumberString intValue];</p>
<p>Convert int to NSString view sourceprint?</p>
<p>int aNumber = 123;</p>
<p>NSString *aString = [NSString stringWithFormat:@"%d", aNumber];</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kangka.net/2011/11/%e7%b1%bb%e5%9e%8b%e8%bd%ac%e6%8d%a2-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android开发之旅：环境搭建及HelloWorld</title>
		<link>http://www.kangka.net/2011/11/android%e5%bc%80%e5%8f%91%e4%b9%8b%e6%97%85%ef%bc%9a%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba%e5%8f%8ahelloworld.html</link>
		<comments>http://www.kangka.net/2011/11/android%e5%bc%80%e5%8f%91%e4%b9%8b%e6%97%85%ef%bc%9a%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba%e5%8f%8ahelloworld.html#comments</comments>
		<pubDate>Mon, 07 Nov 2011 08:55:59 +0000</pubDate>
		<dc:creator>Kangka</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[HelloWorld]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.kangka.net/?p=1012</guid>
		<description><![CDATA[引言 本系列适合0基础的人员，因为我就是从0开始的，此系列记录我步入Android开发的一些经验分享，望与君共勉！作为Android队伍中的一个新人的我，如果有什么不对的地方，还望不吝赐教。 在开始Android开发之旅启动之前，首先要搭建环境，然后创建一个简单的HelloWorld。本文的主题如下： 1、环境搭建 1.1、JDK安装 1.2、Eclipse安装 1.3、Android SDK安装 1.4、ADT安装 1.5、创建AVD 2、HelloWorld 1、环境搭建 1.1、JDK安装 如果你还没有JDK的话，可以去这里下载，接下来的工作就是安装提示一步一步走。设置环境变量步骤如下： 我的电脑-&#62;属性-&#62;高级-&#62;环境变量-&#62;系统变量中添加以下环境变量： JAVA_HOME值为： D:\Program Files\Java\jdk1.6.0_18（你安装JDK的目录） CLASSPATH值为：.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\bin; Path:  在开始追加 %JAVA_HOME%\bin; NOTE：前面四步设置环境变量对搭建Android开发环境不是必须的，可以跳过。 安装完成之后，可以在检查JDK是否安装成功。打开cmd窗口，输入java –version 查看JDK的版本信息。出现类似下面的画面表示安装成功了： 图1、验证JDK安装是否成功 1.2、Eclipse安装 如果你还么有Eclipse的话，可以去这里下载，下载如下图所示的Eclipse IDE for Java Developers（92M）的win 32bit版： 图2、Eclipse下载 解压之后即可使用。 1.3、Android SDK安装 在Android Developers下载android-sdk_r05-windows.zip，下载完成后解压到任意路径。 &#8230; <a href="http://www.kangka.net/2011/11/android%e5%bc%80%e5%8f%91%e4%b9%8b%e6%97%85%ef%bc%9a%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba%e5%8f%8ahelloworld.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h4><strong>引言</strong></h4>
<p>本系列适合0基础的人员，因为我就是从0开始的，此系列记录我步入Android开发的一些经验分享，望与君共勉！作为Android队伍中的一个新人的我，如果有什么不对的地方，还望不吝赐教。</p>
<p>在开始Android开发之旅启动之前，首先要搭建环境，然后创建一个简单的HelloWorld。本文的主题如下：</p>
<ul>
<li>1、环境搭建
<ul>
<li>1.1、JDK安装</li>
<li>1.2、Eclipse安装</li>
<li>1.3、Android SDK安装</li>
<li>1.4、ADT安装</li>
<li>1.5、创建AVD</li>
</ul>
</li>
<li>2、HelloWorld</li>
</ul>
<h4><strong>1、环境搭建</strong></h4>
<h4><strong>1.1、JDK安装</strong></h4>
<p>如果你还没有JDK的话，可以去这里<a href="http://developers.sun.com/downloads/" target="_blank">下载</a>，接下来的工作就是安装提示一步一步走。设置环境变量步骤如下：</p>
<p><span id="more-1012"></span></p>
<ol>
<li>我的电脑-&gt;属性-&gt;高级-&gt;环境变量-&gt;系统变量中添加以下环境变量：</li>
<li>JAVA_HOME值为： D:\Program Files\Java\jdk1.6.0_18（<strong>你安装JDK的目录</strong>）</li>
<li>CLASSPATH值为：.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\bin;</li>
<li>Path:  在开始追加 %JAVA_HOME%\bin;</li>
<li><strong>NOTE：</strong>前面四步设置环境变量对搭建Android开发环境不是必须的，可以跳过。</li>
</ol>
<p>安装完成之后，可以在检查JDK是否安装成功。打开cmd窗口，输入java –version 查看JDK的版本信息。出现类似下面的画面表示安装成功了：</p>
<p><a href="http://images.cnblogs.com/cnblogs_com/skynet/WindowsLiveWriter/Android1_552/image_6.png"><img title="image" src="http://images.cnblogs.com/cnblogs_com/skynet/WindowsLiveWriter/Android1_552/image_thumb_2.png" alt="image" width="589" height="220" border="0" /></a></p>
<p align="center">图1、验证JDK安装是否成功</p>
<h4><strong>1.2、Eclipse安装</strong></h4>
<p>如果你还么有Eclipse的话，可以去这里<a href="http://www.eclipse.org/downloads" target="_blank">下载</a>，下载如下图所示的Eclipse IDE for Java Developers（92M）的win 32bit版：</p>
<p align="center"><a href="http://images.cnblogs.com/cnblogs_com/skynet/WindowsLiveWriter/Android1_552/image_8.png"><img title="image" src="http://images.cnblogs.com/cnblogs_com/skynet/WindowsLiveWriter/Android1_552/image_thumb_3.png" alt="image" width="595" height="77" border="0" /></a> 图2、Eclipse下载</p>
<p>解压之后即可使用。</p>
<h4><strong>1.3、Android SDK安装</strong></h4>
<p>在Android Developers下载android-sdk_r05-windows.zip，下载完成后解压到任意路径。</p>
<ul>
<li>运行SDK Setup.exe，点击Available Packages。如果没有出现可安装的包，请点击Settings，选中Misc中的”Force https://&#8230;”这项，再点击Available Packages 。</li>
<li>选择希望安装的SDK及其文档或者其它包，点击Installation Selected、Accept All、Install Accepted，开始下载安装所选包</li>
<li>在用户变量中新建PATH值为：Android SDK中的tools绝对路径（本机为D:\AndroidDevelop\android-sdk-windows\tools）。</li>
</ul>
<p align="center"><a href="http://images.cnblogs.com/cnblogs_com/skynet/WindowsLiveWriter/Android1_552/image_4.png"><img title="image" src="http://images.cnblogs.com/cnblogs_com/skynet/WindowsLiveWriter/Android1_552/image_thumb.png" alt="image" width="391" height="407" border="0" /></a>图2、设置Android SDK的环境变量</p>
<p>“确定”后，重新启动计算机。重启计算机以后，进入cmd命令窗口，检查SDK是不是安装成功。<br />
运行 android –h 如果有类似以下的输出，表明安装成功：</p>
<p align="center"><a href="http://images.cnblogs.com/cnblogs_com/skynet/WindowsLiveWriter/Android1_552/image_10.png"><img title="image" src="http://images.cnblogs.com/cnblogs_com/skynet/WindowsLiveWriter/Android1_552/image_thumb_1.png" alt="image" width="568" height="370" border="0" /></a>图3、验证Android SDK是否安装成功</p>
<h4><strong>1.4、ADT安装</strong></h4>
<ul>
<li>打开 Eclipse IDE，进入菜单中的 “Help” -&gt; “Install New Software”</li>
<li>点击Add&#8230;按钮，弹出对话框要求输入Name和Location：Name自己随便取，Location输入<a title="http://dl-ssl.google.com/android/eclipse" href="http://dl-ssl.google.com/android/eclipse">http://dl-ssl.google.com/android/eclipse</a>。如下图所示：</li>
</ul>
<p align="center"><a href="http://images.cnblogs.com/cnblogs_com/skynet/WindowsLiveWriter/Android1_552/image_12.png"><img title="image" src="http://images.cnblogs.com/cnblogs_com/skynet/WindowsLiveWriter/Android1_552/image_thumb_4.png" alt="image" width="484" height="108" border="0" /></a></p>
<ul>
<li>确定返回后，在work with后的下拉列表中选择我们刚才添加的ADT，我们会看到下面出有Developer Tools，展开它会有Android DDMS和Android Development Tool，勾选他们。 如下图所示：</li>
</ul>
<p><a href="http://images.cnblogs.com/cnblogs_com/skynet/WindowsLiveWriter/Android1_552/image_16.png"><img title="image" src="http://images.cnblogs.com/cnblogs_com/skynet/WindowsLiveWriter/Android1_552/image_thumb_6.png" alt="image" width="504" height="252" border="0" /></a></p>
<ul>
<li>然后就是按提示一步一步next。</li>
</ul>
<p>完成之后：</p>
<ul>
<li>选择Window &gt; Preferences&#8230;</li>
<li>在左边的面板选择Android，然后在右侧点击Browse&#8230;并选中SDK路径，本机为：<br />
D:\AndroidDevelop\android-sdk-windows</li>
<li>点击Apply、OK。配置完成。</li>
</ul>
<h4><strong>1.5、创建AVD</strong></h4>
<p>为使Android应用程序可以在模拟器上运行，必须创建AVD。</p>
<ul>
<li>1、在Eclipse中。选择Windows &gt; Android SDK and AVD Manager</li>
<li>2、点击左侧面板的Virtual Devices，再右侧点击New</li>
<li>3、填入Name，选择Target的API，SD Card大小任意，Skin随便选，Hardware目前保持默认值</li>
<li>4、点击Create AVD即可完成创建AVD</li>
</ul>
<p><strong>注意：</strong>如果你点击左侧面板的Virtual Devices，再右侧点击New ，而target下拉列表没有可选项时，这时候你：</p>
<ul>
<li>点击左侧面板的Available Packages，在右侧勾选<a href="https://dl-ssl.google.com/android/repository/repository.xml">https://dl-ssl.google.com/android/repository/repository.xml</a>，如下图所示：</li>
</ul>
<blockquote dir="ltr">
<p align="center"><a href="http://images.cnblogs.com/cnblogs_com/skynet/WindowsLiveWriter/Android1_552/image_18.png"><img title="image" src="http://images.cnblogs.com/cnblogs_com/skynet/WindowsLiveWriter/Android1_552/image_thumb_7.png" alt="image" width="530" height="134" border="0" /></a></p>
</blockquote>
<ul>
</ul>
<ul>
<li>然后点击Install Selected按钮，接下来就是按提示做就行了</li>
</ul>
<p>要做这两步，原因是在1.3、Android SDK安装中没有安装一些必要的可用包（Available Packages）。</p>
<h4><strong>2、HelloWorld</strong></h4>
<ul>
<li>通过File -&gt; New -&gt; Project 菜单，建立新项目”Android Project”</li>
<li>然后填写必要的参数，如下图所示：（注意这里我勾选的是Google APIs，你可以选你喜欢的，但你要创建相应的AVD）</li>
</ul>
<p><a href="http://images.cnblogs.com/cnblogs_com/skynet/WindowsLiveWriter/Android1_552/image_14.png"><img title="image" src="http://images.cnblogs.com/cnblogs_com/skynet/WindowsLiveWriter/Android1_552/image_thumb_5.png" alt="image" width="528" height="730" border="0" /></a></p>
<blockquote><p><span style="font-size: medium;">相关参数的说明：</span></p>
<ol>
<li><span style="font-size: small;">Project Name: 包含这个项目的文件夹的名称。 </span></li>
<li><span style="font-size: small;">Package Name: 包名，遵循JAVA规范，用包名来区分不同的类是很重要的，我用的是helloworld.test。 </span></li>
<li><span style="font-size: small;">Activity Name: 这是项目的主类名，这个类将会是Android的Activity类的子类。一个Activity类是一个简单的启动程序和控制程序的类。它可以根据需要创建界面，但不是必须的。 </span></li>
<li><span style="font-size: small;">Application Name: 一个易读的标题在你的应用程序上。 </span></li>
<li><span style="font-size: small;">在”选择栏”的 “Use default location” 选项，允许你选择一个已存在的项目。 </span></li>
</ol>
</blockquote>
<ul>
<li>点击Finish后，点击Eclipse的Run菜单选择Run Configurations…</li>
<li>选择“Android Application”，点击在左上角（按钮像一张纸上有个“+”号）或者双击“Android Application”， 有个新的选项“New_configuration”（<strong>可以改为我们喜欢的名字</strong>）。</li>
<li>在右侧Android面板中点击Browse…，选择HelloWorld</li>
<li>在Target面板的Automatic中勾选相应的AVD，<strong>如果没有可用的AVD的话，你需要点击右下角的Manager…，然后新建相应的AVD</strong>。如下图所示：</li>
</ul>
<p><a href="http://images.cnblogs.com/cnblogs_com/skynet/WindowsLiveWriter/Android1_552/image_20.png"><img title="image" src="http://images.cnblogs.com/cnblogs_com/skynet/WindowsLiveWriter/Android1_552/image_thumb_8.png" alt="image" width="500" height="329" border="0" /></a></p>
<ul>
<li>然后点Run按钮即可，运行成功的话会有Android的模拟器界面，如下图所示：</li>
</ul>
<p><a href="http://images.cnblogs.com/cnblogs_com/skynet/WindowsLiveWriter/Android1_552/image_22.png"><img title="image" src="http://images.cnblogs.com/cnblogs_com/skynet/WindowsLiveWriter/Android1_552/image_thumb_9.png" alt="image" width="585" height="414" border="0" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kangka.net/2011/11/android%e5%bc%80%e5%8f%91%e4%b9%8b%e6%97%85%ef%bc%9a%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba%e5%8f%8ahelloworld.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mkmapview官网示例</title>
		<link>http://www.kangka.net/2011/10/mkmapview%e5%ae%98%e7%bd%91%e7%a4%ba%e4%be%8b.html</link>
		<comments>http://www.kangka.net/2011/10/mkmapview%e5%ae%98%e7%bd%91%e7%a4%ba%e4%be%8b.html#comments</comments>
		<pubDate>Mon, 24 Oct 2011 13:54:45 +0000</pubDate>
		<dc:creator>Kangka</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[Iphone]]></category>
		<category><![CDATA[iso]]></category>
		<category><![CDATA[mkmapview]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.kangka.net/?p=1008</guid>
		<description><![CDATA[ios 地图开发sample code，画路线图。 下载：Breadcrumb]]></description>
			<content:encoded><![CDATA[<p>ios 地图开发sample code，画路线图。</p>
<p><a href="http://www.kangka.net/upload/2011/10/Breadcrumb.zip">下载：Breadcrumb</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kangka.net/2011/10/mkmapview%e5%ae%98%e7%bd%91%e7%a4%ba%e4%be%8b.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>数据类型/对象类型介绍（1）NSString</title>
		<link>http://www.kangka.net/2011/10/%e6%95%b0%e6%8d%ae%e7%b1%bb%e5%9e%8b%e5%af%b9%e8%b1%a1%e7%b1%bb%e5%9e%8b%e4%bb%8b%e7%bb%8d%ef%bc%881%ef%bc%89nsstring.html</link>
		<comments>http://www.kangka.net/2011/10/%e6%95%b0%e6%8d%ae%e7%b1%bb%e5%9e%8b%e5%af%b9%e8%b1%a1%e7%b1%bb%e5%9e%8b%e4%bb%8b%e7%bb%8d%ef%bc%881%ef%bc%89nsstring.html#comments</comments>
		<pubDate>Mon, 24 Oct 2011 13:52:20 +0000</pubDate>
		<dc:creator>Kangka</dc:creator>
				<category><![CDATA[技术]]></category>

		<guid isPermaLink="false">http://www.kangka.net/?p=982</guid>
		<description><![CDATA[字符串是程序设计最常用的数据类型之一了。在Mac/iPhone编程中，苹果为我们提供了一个不同的字符串类型NSString。有别与普通的String为数据类型，NSString其实是一个对象类型。NSString是NSObject（Cocoa Foundation的基础对象）的子类，所以具有NSObject的所有特性，好的和好的… …. 小常识： NS是Cocoa类对象类型的前缀，来源于史蒂夫-乔布斯被苹果开除那段时间建立的公司NeXT. @是Cocoa元素的前缀，很多地方我们会看到，比如接下来... 1, 创建一个NSString对象 简单方法： NSString *aString = @"我是个NS字符串！"; //除了引号外加@, 没别的区别 *上面的不需要操心内存管理哟～ 复杂一点儿：（需要内存管理的） NSString *aString = [[NSString alloc] initWithFormat:@"这也是个NS字符串！"]; *initWithFormat是其中一个初始化方法，常用的还有 //从一个文件读取需要的内容 - (id)initWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error //从一个地址读取需要的内容 - (id)initWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error *以上方法得到的NSString的retain值为1，所以记得release掉阿～～ 2，使用一个NSString对象 &#8230; <a href="http://www.kangka.net/2011/10/%e6%95%b0%e6%8d%ae%e7%b1%bb%e5%9e%8b%e5%af%b9%e8%b1%a1%e7%b1%bb%e5%9e%8b%e4%bb%8b%e7%bb%8d%ef%bc%881%ef%bc%89nsstring.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="postentry">
<p>字符串是程序设计最常用的数据类型之一了。在Mac/iPhone编程中，苹果为我们提供了一个不同的字符串类型NSString。有别与普通的String为数据类型，NSString其实是一个对象类型。NSString是NSObject（Cocoa Foundation的基础对象）的子类，所以具有NSObject的所有特性，好的和好的… ….</p>
<pre>小常识：
NS是Cocoa类对象类型的前缀，来源于史蒂夫-乔布斯被苹果开除那段时间建立的公司NeXT.
@是Cocoa元素的前缀，很多地方我们会看到，比如接下来...</pre>
<p><strong>1, 创建一个NSString对象</strong></p>
<p>简单方法：</p>
<div class="wp_syntax">
<div class="code">
<pre class="objc" style="font-family: monospace;"><span style="color: #400080;">NSString</span> <span style="color: #002200;">*</span>aString <span style="color: #002200;">=</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">"我是个NS字符串！"</span>;  <span style="color: #11740a; font-style: italic;">//除了引号外加@, 没别的区别</span></pre>
</div>
</div>
<p>*上面的不需要操心内存管理哟～</p>
<p>复杂一点儿：（需要内存管理的）</p>
<div class="wp_syntax">
<div class="code">
<pre class="objc" style="font-family: monospace;"><span style="color: #400080;">NSString</span> <span style="color: #002200;">*</span>aString <span style="color: #002200;">=</span> <span style="color: #002200;">[</span><span style="color: #002200;">[</span><span style="color: #400080;">NSString</span> alloc<span style="color: #002200;">]</span> initWithFormat<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">"这也是个NS字符串！"</span><span style="color: #002200;">]</span>;</pre>
</div>
</div>
<p>*initWithFormat是其中一个初始化方法，常用的还有</p>
<div class="wp_syntax">
<div class="code">
<pre class="objc" style="font-family: monospace;"><span style="color: #11740a; font-style: italic;">//从一个文件读取需要的内容</span>
<span style="color: #002200;">-</span> <span style="color: #002200;">(</span><span style="color: #a61390;">id</span><span style="color: #002200;">)</span>initWithContentsOfFile<span style="color: #002200;">:</span><span style="color: #002200;">(</span><span style="color: #400080;">NSString</span> <span style="color: #002200;">*</span><span style="color: #002200;">)</span>path encoding<span style="color: #002200;">:</span><span style="color: #002200;">(</span>NSStringEncoding<span style="color: #002200;">)</span>enc error<span style="color: #002200;">:</span><span style="color: #002200;">(</span><span style="color: #400080;">NSError</span> <span style="color: #002200;">**</span><span style="color: #002200;">)</span>error
<span style="color: #11740a; font-style: italic;">//从一个地址读取需要的内容</span>
<span style="color: #002200;">-</span> <span style="color: #002200;">(</span><span style="color: #a61390;">id</span><span style="color: #002200;">)</span>initWithContentsOfURL<span style="color: #002200;">:</span><span style="color: #002200;">(</span><span style="color: #400080;">NSURL</span> <span style="color: #002200;">*</span><span style="color: #002200;">)</span>url encoding<span style="color: #002200;">:</span><span style="color: #002200;">(</span>NSStringEncoding<span style="color: #002200;">)</span>enc error<span style="color: #002200;">:</span><span style="color: #002200;">(</span><span style="color: #400080;">NSError</span> <span style="color: #002200;">**</span><span style="color: #002200;">)</span>error</pre>
</div>
</div>
<p>*以上方法得到的NSString的retain值为1，所以记得release掉阿～～</p>
<p><strong>2，使用一个NSString对象</strong></p>
<div class="wp_syntax">
<div class="code">
<pre class="objc" style="font-family: monospace;"><span style="color: #400080;">NSString</span> <span style="color: #002200;">*</span>aString <span style="color: #002200;">=</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">"This is a NSString"</span>;

NSLog<span style="color: #002200;">(</span>aString<span style="color: #002200;">)</span>;   <span style="color: #11740a; font-style: italic;">//在控制台输出信息，该函数方法需要一个NSString对象作为参数</span> 

NSLog<span style="color: #002200;">(</span><span style="color: #bf1d1a;">"这样不会好使的"</span><span style="color: #002200;">)</span>;

NSLog<span style="color: #002200;">(</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">"这样就会好使拉～"</span><span style="color: #002200;">)</span>;</pre>
</div>
</div>
<p>再比如设置一个UIView的标题：</p>
<div class="wp_syntax">
<div class="code">
<pre class="objc" style="font-family: monospace;"><span style="color: #002200;">[</span>UIView setTitle<span style="color: #002200;">:</span>aString<span style="color: #002200;">]</span>;

<span style="color: #002200;">[</span>UIView setTitle<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">"标题"</span><span style="color: #002200;">]</span>;

UIView.title <span style="color: #002200;">=</span> aString;</pre>
</div>
</div>
<p><strong>3，释放NSString</strong></p>
<div class="wp_syntax">
<div class="code">
<pre class="objc" style="font-family: monospace;"><span style="color: #002200;">[</span>aString release<span style="color: #002200;">]</span>; <span style="color: #11740a; font-style: italic;">//对象将被系统释放掉咯</span></pre>
</div>
</div>
<p>*记得不要释放直接用 = @”xxx” 的NSString对象哟，系统会管的～</p>
<p><strong>4，快速使用一个NSString</strong></p>
<div class="wp_syntax">
<div class="code">
<pre class="objc" style="font-family: monospace;">NSLog<span style="color: #002200;">(</span><span style="color: #002200;">[</span><span style="color: #400080;">NSString</span> stringWithFormat<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">"一个NS字符串"</span><span style="color: #002200;">]</span><span style="color: #002200;">)</span>;</pre>
</div>
</div>
<p>//这种快速方法返回的是一个retain为1，autorelease的对象，不需要操心它的内存管理</p>
<p><strong>5，常用方法</strong></p>
<p>我喜欢NSString的地方就在于很多方法非常方便，比如：</p>
<div class="wp_syntax">
<div class="code">
<pre class="objc" style="font-family: monospace;">nString <span style="color: #002200;">=</span> <span style="color: #002200;">[</span>aString substringToIndex<span style="color: #002200;">:</span><span style="color: #2400d9;">4</span><span style="color: #002200;">]</span>; <span style="color: #11740a; font-style: italic;">//nString将得到aString中的前四个字符</span></pre>
</div>
</div>
<p><strong>6，小结</strong></p>
<p>暂时能记起来的就这么些了，有机会再补充，希望大家NS的愉快～</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.kangka.net/2011/10/%e6%95%b0%e6%8d%ae%e7%b1%bb%e5%9e%8b%e5%af%b9%e8%b1%a1%e7%b1%bb%e5%9e%8b%e4%bb%8b%e7%bb%8d%ef%bc%881%ef%bc%89nsstring.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

