<?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"
	>

<channel>
	<title>FLYBLOG</title>
	<atom:link href="http://www.flyblog.info/feed" rel="self" type="application/rss+xml" />
	<link>http://www.flyblog.info</link>
	<description>Brilliant life with wordpress.</description>
	<pubDate>Wed, 31 Dec 2008 16:04:15 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<item>
		<title>namecheap无法正常访问</title>
		<link>http://www.flyblog.info/catinternet/227.html</link>
		<comments>http://www.flyblog.info/catinternet/227.html#comments</comments>
		<pubDate>Wed, 31 Dec 2008 16:04:15 +0000</pubDate>
		<dc:creator>Flyblog</dc:creator>
		
		<category><![CDATA[互联网络]]></category>

		<guid isPermaLink="false">http://www.flyblog.info/?p=227</guid>
		<description><![CDATA[namecheap, 域名注册


No related posts.]]></description>
			<content:encoded><![CDATA[<p>这几天域名注册网站namecheap.com无法正常访问了， 只能打开网站的html页面却无法下载css文件，导致页面错乱， 好在网页源码下载正常，所以基本功能仍然可以使用。 不知道具体原因，但是要续费一个域名折腾了半天才搞定， 希望早日能正常访问。。。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flyblog.info/catinternet/227.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Verizon赢得域名侵权案获赔3320万美元</title>
		<link>http://www.flyblog.info/catinternet/224.html</link>
		<comments>http://www.flyblog.info/catinternet/224.html#comments</comments>
		<pubDate>Fri, 26 Dec 2008 01:24:57 +0000</pubDate>
		<dc:creator>Flyblog</dc:creator>
		
		<category><![CDATA[互联网络]]></category>

		<category><![CDATA[OnlineNic]]></category>

		<category><![CDATA[域名注册]]></category>

		<category><![CDATA[网络服务]]></category>

		<guid isPermaLink="false">http://www.flyblog.info/?p=224</guid>
		<description><![CDATA[美国地方法庭近日判决，网络服务公司OnlineNic应向Verizon Communications(以下简称“Verizon”)支付3320万美元，作为以Verizon商标注册了数百个域名的赔偿金。美国加利福尼亚州 圣何塞地方法官杰里米·福格尔(Jeremy Fogel)于12月19日就此案作出了缺席判决，下令冻结OnlineNic资产，并责令该公司为其以Verizon商标注册的663个域名向 Verizon支付赔偿，每个域名赔偿5万美元。


No related posts.]]></description>
			<content:encoded><![CDATA[<p>北京时间12月26日消息，据国外媒体报道，美国地方法庭近日判决，网络服务公司OnlineNic应向Verizon Communications(以下简称“Verizon”)支付3320万美元，作为以Verizon商标注册了数百个域名的赔偿金。美国加利福尼亚州 圣何塞地方法官杰里米·福格尔(Jeremy Fogel)于12月19日就此案作出了缺席判决，下令冻结OnlineNic资产，并责令该公司为其以Verizon商标注册的663个域名向 Verizon支付赔偿，每个域名赔偿5万美元。</p>
<p>Verizon于6月份对OnlineNic提起诉讼，称该公司侵犯了Verizon商标，犯有非法“网络蟑螂”罪，即在国际上抢注域名，混淆网络用户视听。Verizon称，这些域名经常将用户引到推销与Verizon产品有竞争关系的产品页面。</p>
<p>Verizon法律顾问萨拉·德茨奇(Sarah Deutsch)周三发表声明称：“本案旨在传达一个明确的信息，即威慑那些‘网络蟑螂’，阻止其继续以误导消费者为主要目的运营业务。”</p>
<p>Verizon在这起诉讼中要求获赔最多6630万美元，索赔目标包括Myverizonwireless.com、Iphoneverizonplans.com和Verizon-cellular.com等网站。</p>
<p>Verizon在法庭文件中指出，OnlineNic注册了90多万个与全球各大公司名称相似的域名，如谷歌、阿迪达斯、新闻集团旗下的 MySpace、沃尔玛和雅虎等。Verizon指控称，OnlineNic使用一种自动程序注册域名，并采取了“许多方法掩盖其真实身份”。</p>
<p>OnlineNic则在网站上称，该公司自1996年以来就已经是一家与ICANN(互联网域名与地址管理机构)签定委任协议的国际域名注册商。</p>
<p>目前，OnlineNic尚未就本案判决置评。</p>
<p><a href="http://cnbeta.com/articles/73305.htm"> 原文地址:http://cnbeta.com/articles/73305.htm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flyblog.info/catinternet/224.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>在自己的程序中实现Email功能</title>
		<link>http://www.flyblog.info/catprogramming/221.html</link>
		<comments>http://www.flyblog.info/catprogramming/221.html#comments</comments>
		<pubDate>Sat, 20 Dec 2008 16:10:06 +0000</pubDate>
		<dc:creator>Flyblog</dc:creator>
		
		<category><![CDATA[编程开发]]></category>

		<category><![CDATA[Email]]></category>

		<category><![CDATA[iPhone]]></category>

		<category><![CDATA[Objective-C]]></category>

		<category><![CDATA[SMTP]]></category>

		<category><![CDATA[发送邮件]]></category>

		<guid isPermaLink="false">http://www.flyblog.info/catprogramming/221.html</guid>
		<description><![CDATA[<p>在iPhone上如果想在应用程序里发送邮件只能通过调用系统默认email客户端程序，使用mailto协议，具体方法为</p>  <pre lang="objc">[[UIApplication sharedApplication] OpenURL:@&#34;mailto:someone@web.com?subject=test email...&#34;&#62;mailto:someone@web.com?subject=test email...&#34;];</pre>

<p>这种方式建档方便， 如果只是简单的发送文本完全可以胜任， 不过如果需要发送附件或者html格式化的信件，这种方法将无法实现，此时需要在自己的程序中实现email发送代码。 如果你不想自己去实现发送的代码，请看<a name="Introduction">SKPSMTPMessage </a>， 该项目是google上的开源项目，实现了iPhone平台通过SMTP发送email的功能


Related posts:<ol><li><a href='http://www.flyblog.info/catprogramming/175.html' rel='bookmark' title='Permanent Link: 下载google maps地图'>下载google maps地图</a> <small>最近在写一个iPhone上的程序， 其中用到了google maps， 最简单的做法是在程序中嵌入一个UIWebView然后加载一个网页，在网页中写上一段javascript并包含google maps 地图对象即可， 这样的做法简单但有很大的弊端。 主要是效率以及稳定性的问题， UIWebView似乎是缓存了很多文件， 而又没有开放的接口用于释放清除这些缓存内容，这就导致程序可使用内存越来越小，直至崩溃，尤其是如果要同时使用UIImagePickerController那就更严重。...</small></li><li><a href='http://www.flyblog.info/catprogramming/151.html' rel='bookmark' title='Permanent Link: iPhone开发之Objective-C学习(2)'>iPhone开发之Objective-C学习(2)</a> <small>上次学习了Objective-C的基础知识和函数调用的基本规则， 现在我们在来了解一下新的概念&#8212;&#8212;Accessors，简单意思就是访问器。 在Objective-C中所有的类成员变量默认都是私有的， 你不可能直接访问这些成员变量。你需要用setValue 和 getValue或者value来赋值或者取值，你也可以在申明变量时制定setter和getter，下面是Objective-C1.x的语法格式 [friend setName:@"Mike"]; value =...</small></li><li><a href='http://www.flyblog.info/catprogramming/165.html' rel='bookmark' title='Permanent Link: iPhone开发之Objective-C学习(5)'>iPhone开发之Objective-C学习(5)</a> <small>Objective-C中的属性 在C++中，类可以有自己的成员变量， 一般公有成员变量可以直接通过类对象访问或修改， 保护成员变量和私有成员变量通过相应的函数来存取，比如 class CPerson { public: int gender;...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>在iPhone上如果想在应用程序里发送邮件只能通过调用系统默认email客户端程序，使用mailto协议，具体方法为</p>

<div class="wp_codebox"><table width="100%" ><tr id="p2211"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p221code1"><pre class="objc" style="font-family:monospace;"><span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>UIApplication sharedApplication<span style="color: #002200;">&#93;</span> OpenURL<span style="color: #002200;">:</span>@<span style="color: #002200;">&amp;</span>quot;mailto<span style="color: #002200;">:</span>someone@web.com?subject<span style="color: #002200;">=</span>test email...<span style="color: #002200;">&amp;</span>quot;<span style="color: #002200;">&amp;</span>gt;mailto<span style="color: #002200;">:</span>someone@web.com?subject<span style="color: #002200;">=</span>test email...<span style="color: #002200;">&amp;</span>quot;<span style="color: #002200;">&#93;</span>;</pre></td></tr></table></div>

<p>这种方式建档方便， 如果只是简单的发送文本完全可以胜任， 不过如果需要发送附件或者html格式化的信件，这种方法将无法实现，此时需要在自己的程序中实现email发送代码。 如果你不想自己去实现发送的代码，请看<a name="Introduction">SKPSMTPMessage </a>， 该项目是google上的开源项目，实现了iPhone平台通过SMTP发送email的功能， 你可以通过<a title="http://code.google.com/p/skpsmtpmessage" href="http://code.google.com/p/skpsmtpmessage">http://code.google.com/p/skpsmtpmessage</a> 获得代码，加入自己的项目即可。</p>
<p><a name="Introduction">SKPSMTPMessage </a>的使用方法也很简单，只需要分配一个新的<a name="Introduction">SKPSMTPMessage </a>对象，设置相应的字段即可，比如</p>

<div class="wp_codebox"><table width="100%" ><tr id="p2212"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code" id="p221code2"><pre class="objc" style="font-family:monospace;">SKPSMTPMessage	mailMsg <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>SKPSMTPMessage  alloc<span style="color: #002200;">&#93;</span> init<span style="color: #002200;">&#93;</span>;
mailMsg.fromEmail <span style="color: #002200;">=</span> @<span style="color: #002200;">&amp;</span>quot;mylogin@gmail.com<span style="color: #002200;">&amp;</span>quot;; 
mailMsg.toEmail <span style="color: #002200;">=</span> @<span style="color: #002200;">&amp;</span>quot;mylogin@gmail.com<span style="color: #002200;">&amp;</span>quot;; 
mailMsg.relayHost <span style="color: #002200;">=</span> @<span style="color: #002200;">&amp;</span>quot;smtp.gmail.com<span style="color: #002200;">&amp;</span>quot;; 
mailMsg.requiresAuth <span style="color: #002200;">=</span> <span style="color: #a61390;">YES</span>; 
mailMsg.login <span style="color: #002200;">=</span> @<span style="color: #002200;">&amp;</span>quot;mylogin<span style="color: #002200;">&amp;</span>quot;; 
mailMsg.pass <span style="color: #002200;">=</span> @<span style="color: #002200;">&amp;</span>quot;mypassword<span style="color: #002200;">&amp;</span>quot;; 
mailMsg.subject <span style="color: #002200;">=</span> @<span style="color: #002200;">&amp;</span>quot;test message<span style="color: #002200;">&amp;</span>quot;;  
mailMsg.validateSSLChain <span style="color: #002200;">=</span> <span style="color: #a61390;">NO</span>; <span style="color: #11740a; font-style: italic;">// 只用于自验证</span>
mailMsg.delegate <span style="color: #002200;">=</span> self;</pre></td></tr></table></div>

<p>&#160;</p>
<p>详细文档请访问<a href="http://code.google.com/p/skpsmtpmessage">http://code.google.com/p/skpsmtpmessage</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flyblog.info/catprogramming/221.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>共享软件作者建站利器&#8211;无数据库CMS</title>
		<link>http://www.flyblog.info/catinternet/214.html</link>
		<comments>http://www.flyblog.info/catinternet/214.html#comments</comments>
		<pubDate>Tue, 16 Dec 2008 02:46:44 +0000</pubDate>
		<dc:creator>Flyblog</dc:creator>
		
		<category><![CDATA[互联网络]]></category>

		<category><![CDATA[cms]]></category>

		<category><![CDATA[without database]]></category>

		<category><![CDATA[共享软件]]></category>

		<category><![CDATA[无数据库]]></category>

		<guid isPermaLink="false">http://www.flyblog.info/?p=214</guid>
		<description><![CDATA[一般的cms都需要mysql等数据库来存储内容和配置信息， 这样的前提条件对于一般的小站来说有些庞大， 有点拿大炮打蚊子的意思。 所以简单的基于文本的cms， 对于软件作者尤其是共享软件作者来说是非常好的选择， 选择无数据库的cms基于以下四个原因：
	<li>内容很少更改， 相对来说内容比较固定，不会经常改变</li>
	<li>主机空间不支持数据库，或者限制较多</li>
	<li>站长没有数据库相关管理经验</li>
	<li>网站有可能需要更换空间， 有利于移植</li>


Related posts:<ol><li><a href='http://www.flyblog.info/catinternet/87.html' rel='bookmark' title='Permanent Link: 拥有自己的电子名片'>拥有自己的电子名片</a> <small>近日， Schmap 公司推出了电子名片服务， 该服务可以让你轻松制作具有地理位置标识的电子名片， 整个过程非常简单： 1. 访问Schmap 电子名片网站 http://www.schmap.me 2....</small></li><li><a href='http://www.flyblog.info/catprogramming/205.html' rel='bookmark' title='Permanent Link: 提取iPhone程序生成的数据文件'>提取iPhone程序生成的数据文件</a> <small>如果你想从iPhone中取出应用程序生成的数据文件， 一般来说有三个方法， 使用Jailbreak 版本的iPhone或者ipod touch，安装ssh ， ftp或者其他手机软件都可以完成此项任务。 这是最省事最方便的办法，不过严格的说事非法的:) 如果程序是你自己写的， 那么在程序中加入upload上传代码，将数据文件上传到指定的服务器...</small></li><li><a href='http://www.flyblog.info/catphotography/122.html' rel='bookmark' title='Permanent Link: 周末闲暇在蓝色港湾拍了几张照片'>周末闲暇在蓝色港湾拍了几张照片</a> <small>天气不错，有点小风，阳光明媚很适宜散步:) 朝阳公园湖边的咖啡馆看上去很惬意， 有三两的女孩和摄影师一伙人在拍写真，女子冻得发抖还得穿着薄薄的透明短裙随风飘摆。 几家国际友人一家子坐在湖边喝咖啡用餐，气氛颇为悠闲。 蓝色港湾内部尚未装修完，个别店铺门口蒙的严实看不出是哪家品牌。 随手拍几张片片，当是写实，也做到此一游的记忆 ...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>一般的cms都需要mysql等数据库来存储内容和配置信息， 这样的前提条件对于一般的小站来说有些庞大， 有点拿大炮打蚊子的意思。 所以简单的基于文本的cms， 对于软件作者尤其是共享软件作者来说是非常好的选择， 选择无数据库的cms基于以下四个原因：</p>
<li>内容很少更改， 相对来说内容比较固定，不会经常改变</li>
<li>主机空间不支持数据库，或者限制较多</li>
<li>站长没有数据库相关管理经验</li>
<li>网站有可能需要更换空间， 有利于移植</li>
<p>下面是搜集的几个基于文本数据库的cms系统<br />
CMSimple | <a href="www.cmsimple.com">www.cmsimple.com</a><br />
开发语言： PHP >= 4.04<br />
主要功能： 支持多达1000个独立页面，可视化编辑<br />
<a href="http://www.flyblog.info/wp-content/uploads/2008/12/cmssimple.png"><img src="http://www.flyblog.info/wp-content/uploads/2008/12/cmssimple-300x294.png" alt="" title="cmssimple" width="300" height="294" class="alignnone size-medium wp-image-215" /></a></p>
<p>cms -db | <a href="http://cms-db.de">cms-db.de</a><br />
开发语言: php5<br />
主要功能：sitemap, 留言薄<br />
<a href="http://www.flyblog.info/wp-content/uploads/2008/12/cmsdb.png"><img src="http://www.flyblog.info/wp-content/uploads/2008/12/cmsdb-300x236.png" alt="" title="cmsdb" width="300" height="236" class="alignnone size-medium wp-image-216" /></a></p>
<p>moziloCMS | <a href="http://cms.mozilo.de">cms.mozilo.de</a><br />
开发语言: php >= 4.3.0<br />
主要功能：布局管理<br />
<a href="http://www.flyblog.info/wp-content/uploads/2008/12/mozilo.jpg"><img src="http://www.flyblog.info/wp-content/uploads/2008/12/mozilo.jpg" alt="" title="mozilo" width="300" height="250" class="alignnone size-medium wp-image-217" /></a></p>
<p>web dir X | <a href="http://www.webdirx.drcho.be">www.webdirx.drcho.be</a><br />
开发语言: php<br />
主要功能：可以管理最多120个页面<br />
<a href="http://www.flyblog.info/wp-content/uploads/2008/12/webdirx.gif"><img src="http://www.flyblog.info/wp-content/uploads/2008/12/webdirx-300x225.gif" alt="" title="webdirx" width="300" height="225" class="alignnone size-medium wp-image-218" /></a></p>
<p>GuppY | <a href="http://www.freeguppy.org">www.freeguppy.org</a><br />
开发语言: php<br />
主要功能：留言本, 新闻邮件管理, PDA版本<br />
<a href="http://www.flyblog.info/wp-content/uploads/2008/12/guppy.jpg"><img src="http://www.flyblog.info/wp-content/uploads/2008/12/guppy.jpg" alt="" title="guppy" width="300" height="226" class="alignnone size-medium wp-image-219" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flyblog.info/catinternet/214.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>提取iPhone程序生成的数据文件</title>
		<link>http://www.flyblog.info/catprogramming/205.html</link>
		<comments>http://www.flyblog.info/catprogramming/205.html#comments</comments>
		<pubDate>Thu, 11 Dec 2008 06:47:46 +0000</pubDate>
		<dc:creator>Flyblog</dc:creator>
		
		<category><![CDATA[编程开发]]></category>

		<category><![CDATA[iPhone]]></category>

		<category><![CDATA[iPod Touch]]></category>

		<category><![CDATA[XCode]]></category>

		<category><![CDATA[程序文件]]></category>

		<guid isPermaLink="false">http://www.flyblog.info/?p=205</guid>
		<description><![CDATA[如果你想从iPhone中取出应用程序生成的数据文件， 一般来说有三个方法，
1. 使用Jailbreak 版本的iPhone或者ipod touch，安装ssh ， ftp或者其他手机软件都可以完成此项任务。 这是最省事最方便的办法，不过严格的说事非法的:)
2. 如果程序是你自己写的， 那么在程序中加入upload上传代码，将数据文件上传到指定的服务器
3. 如果你是开发人员，只需打开xcode的organizer 即可完成数据文件的提取


Related posts:<ol><li><a href='http://www.flyblog.info/catinternet/214.html' rel='bookmark' title='Permanent Link: 共享软件作者建站利器&#8211;无数据库CMS'>共享软件作者建站利器&#8211;无数据库CMS</a> <small>一般的cms都需要mysql等数据库来存储内容和配置信息， 这样的前提条件对于一般的小站来说有些庞大， 有点拿大炮打蚊子的意思。 所以简单的基于文本的cms， 对于软件作者尤其是共享软件作者来说是非常好的选择， 选择无数据库的cms基于以下四个原因： 内容很少更改， 相对来说内容比较固定，不会经常改变 主机空间不支持数据库，或者限制较多 站长没有数据库相关管理经验...</small></li><li><a href='http://www.flyblog.info/catinternet/87.html' rel='bookmark' title='Permanent Link: 拥有自己的电子名片'>拥有自己的电子名片</a> <small>近日， Schmap 公司推出了电子名片服务， 该服务可以让你轻松制作具有地理位置标识的电子名片， 整个过程非常简单： 1. 访问Schmap 电子名片网站 http://www.schmap.me 2....</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>如果你想从iPhone中取出应用程序生成的数据文件， 一般来说有三个方法，</p>
<ol>
<li>使用Jailbreak 版本的iPhone或者ipod touch，安装ssh ， ftp或者其他手机软件都可以完成此项任务。 这是最省事最方便的办法，不过严格的说事非法的:)</li>
<li>如果程序是你自己写的， 那么在程序中加入upload上传代码，将数据文件上传到指定的服务器</li>
<li>如果你是开发人员，只需打开xcode的organizer 即可完成数据文件的提取</li>
</ol>
<p>对于普通用户，尤其是国内的用户来说，基本上都使用的是Jailbreak版本的水货机， 所以基本上无此烦恼。 而对于开发人员来说，常常需要知道自己的程序在真机上运行的情况以及生成的文件是否是正确的， 毕竟模拟器和真机还是有区别的， 所以第三种办法是最合适的。操作起来很简单。 只需将iPhone连接到电脑上， 打开xcode， 在windows 菜单下选择 Organizer ， 然后在左侧选择自己的iPhone标示，在右边的application项中找到需要的程序， 如图</p>
<p><img class="alignnone size-medium wp-image-206" title="appdata" src="http://www.flyblog.info/wp-content/uploads/2008/12/appdata.gif" alt="" /></p>
<p>点击左侧小箭头，就会看见Application Data了， 这时只需点击右侧小三角形，就可以将数据文件下载到自己的电脑上了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flyblog.info/catprogramming/205.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Objective-C class for zip/unzip zip format files</title>
		<link>http://www.flyblog.info/catprogramming/202.html</link>
		<comments>http://www.flyblog.info/catprogramming/202.html#comments</comments>
		<pubDate>Wed, 10 Dec 2008 08:03:48 +0000</pubDate>
		<dc:creator>Flyblog</dc:creator>
		
		<category><![CDATA[编程开发]]></category>

		<category><![CDATA[iPhone]]></category>

		<category><![CDATA[minizip]]></category>

		<category><![CDATA[unzip]]></category>

		<category><![CDATA[zip]]></category>

		<guid isPermaLink="false">http://www.flyblog.info/?p=202</guid>
		<description><![CDATA[This is a simple class for compressing and extracting files. It works depend on minizip, which is a open source zip format library.  And it&#8217;s included in the attachment.
The major class name is ZipArchive, it&#8217;s easy to use, you can declare a instance and call initialize  functions, and then call addFileToZip or UnzipFileTo [...]


Related posts:<ol><li><a href='http://www.flyblog.info/catprogramming/186.html' rel='bookmark' title='Permanent Link: iPhone开发之打包zip文件'>iPhone开发之打包zip文件</a> <small>程序需要往服务器上上传文件， 因为iPhone用户往往是用gprs或者edge网络，为了节约流量以及加快上传速度，所以只好将要上传的文件打包成zip文件，这样体积小了， 也为用户节约了时间和金钱。 开始的时候抱有意思希望去挖掘SDK文档， 未果， sdk不提供zip相关接口，在apple论坛打听了一下，很多dx给的建议是用apple script在后台打包， 对此领域不熟悉，放弃。 好在iPhone的官方SDK支持zLib库，这就好了， 找来minizip，一个封装的挺好的C/C++...</small></li><li><a href='http://www.flyblog.info/catprogramming/151.html' rel='bookmark' title='Permanent Link: iPhone开发之Objective-C学习(2)'>iPhone开发之Objective-C学习(2)</a> <small>上次学习了Objective-C的基础知识和函数调用的基本规则， 现在我们在来了解一下新的概念&#8212;&#8212;Accessors，简单意思就是访问器。 在Objective-C中所有的类成员变量默认都是私有的， 你不可能直接访问这些成员变量。你需要用setValue 和 getValue或者value来赋值或者取值，你也可以在申明变量时制定setter和getter，下面是Objective-C1.x的语法格式 [friend setName:@"Mike"]; value =...</small></li><li><a href='http://www.flyblog.info/catprogramming/157.html' rel='bookmark' title='Permanent Link: iPhone开发之Objective-C学习(3)'>iPhone开发之Objective-C学习(3)</a> <small>到现在为止，已经学习了如何调用类方法以及创建对象。 到目前为止我们还没有看到如何才能定义一个类， 上两次的内容已经多次涉及到类及类的成员，现在我们可以学习一下如何才能定义一个自己的类。 设计一个类（接口） 一般来讲创建一个类需要两部分，首先是申明类的头文件ClassName.h， 还有类实现的源文件ClassName.m， 如果你想在程序中混合C/C++编程那么就需要使用.mm或者.M ，这样编译器会以此判断该类中混合了Objective-C 和 C语言。...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>This is a simple class for compressing and extracting files. It works depend on minizip, which is a open source zip format library.  And it&#8217;s included in the attachment.</p>
<p>The major class name is ZipArchive, it&#8217;s easy to use, you can declare a instance and call initialize  functions, and then call addFileToZip or UnzipFileTo  to finish compression or uncompression.</p>
<p>The code below shows you how to use it.</p>
<p><strong>To create and add files to a zip</strong></p>

<div class="wp_codebox"><table width="100%" ><tr id="p2025"><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code" id="p202code5"><pre class="objc" style="font-family:monospace;">		<span style="color: #a61390;">BOOL</span> ret <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>zip CreateZipFile2<span style="color: #002200;">:</span>l_zipfile<span style="color: #002200;">&#93;</span>;
		ret <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>zip addFileToZip<span style="color: #002200;">:</span>l_photo newname<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;photo.jpg&quot;</span><span style="color: #002200;">&#93;</span>;
		<span style="color: #a61390;">if</span><span style="color: #002200;">&#40;</span> <span style="color: #002200;">!</span><span style="color: #002200;">&#91;</span>zip CloseZipFile2<span style="color: #002200;">&#93;</span> <span style="color: #002200;">&#41;</span>
		<span style="color: #002200;">&#123;</span>
			l_zipfile <span style="color: #002200;">=</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;&quot;</span>;
		<span style="color: #002200;">&#125;</span>
		<span style="color: #002200;">&#91;</span>zip release<span style="color: #002200;">&#93;</span>;</pre></td></tr></table></div>

<p>Extract files in a zip file to special directory, if the directory does not exist, the class will create it automatically. also if you pass &#8216;overWrite&#8217; as &#8216;YES&#8217; it will overwrite files already exist. You can also implement the methods of ZipArchiveDelegate to give more choices for overwriting.</p>

<div class="wp_codebox"><table width="100%" ><tr id="p2026"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code" id="p202code6"><pre class="objc" style="font-family:monospace;">	ZipArchive<span style="color: #002200;">*</span> za <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>ZipArchive alloc<span style="color: #002200;">&#93;</span> init<span style="color: #002200;">&#93;</span>;
	<span style="color: #a61390;">if</span><span style="color: #002200;">&#40;</span> <span style="color: #002200;">&#91;</span>za UnzipOpenFile<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;/Volumes/data/testfolder/Archive.zip&quot;</span><span style="color: #002200;">&#93;</span> <span style="color: #002200;">&#41;</span>
	<span style="color: #002200;">&#123;</span>
		<span style="color: #a61390;">BOOL</span> ret <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>za UnzipFileTo<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;/Volumes/data/testfolder/extract&quot;</span> overWrite<span style="color: #002200;">:</span><span style="color: #a61390;">YES</span><span style="color: #002200;">&#93;</span>;
		<span style="color: #a61390;">if</span><span style="color: #002200;">&#40;</span> <span style="color: #a61390;">NO</span><span style="color: #002200;">==</span>ret <span style="color: #002200;">&#41;</span>
		<span style="color: #002200;">&#123;</span>
		<span style="color: #002200;">&#125;</span>
		<span style="color: #002200;">&#91;</span>za UnzipCloseFile<span style="color: #002200;">&#93;</span>;
	<span style="color: #002200;">&#125;</span>
&nbsp;
	<span style="color: #002200;">&#91;</span>za release<span style="color: #002200;">&#93;</span>;</pre></td></tr></table></div>

<p> <a href="http://www.flyblog.info/wp-content/uploads/2008/12/zipfile-oc.zip">zip/unzip wrapper class for Objective-C</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flyblog.info/catprogramming/202.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>iPhone表格中划动删除单元格</title>
		<link>http://www.flyblog.info/catprogramming/196.html</link>
		<comments>http://www.flyblog.info/catprogramming/196.html#comments</comments>
		<pubDate>Tue, 09 Dec 2008 14:01:09 +0000</pubDate>
		<dc:creator>Flyblog</dc:creator>
		
		<category><![CDATA[编程开发]]></category>

		<category><![CDATA[iPhone]]></category>

		<category><![CDATA[UITableView]]></category>

		<category><![CDATA[划动删除]]></category>

		<guid isPermaLink="false">http://www.flyblog.info/catprogramming/196.html</guid>
		<description><![CDATA[iPhone上的程序很多用表格UITableView来显示数据、做布局等。 当用UITableView显示数据是经常会需要删除、插入数据条目。 SDK提供两种删除UITableViewCell的方法


Related posts:<ol><li><a href='http://www.flyblog.info/catprogramming/163.html' rel='bookmark' title='Permanent Link: iPhone开发之Objective-C学习(4)'>iPhone开发之Objective-C学习(4)</a> <small>Objective-C的内存管理 在Mac OSX 系列操作系统以及iPhone平台上写应用程序时，打开垃圾回收选项，如果程序并不涉及复杂的内存分配， 就几乎可以不用操心内存管理的问题。系统会自动释放部分不用的内存，就像Java那样。 但是如果所编写的程序中有大量内存分配以及频繁释放使用， 这时就需要自己来管理内存。 也就是说，如果你使用alloc方法为对象分配空间， 就应该在使用完后手动发送release消息以释放内存空间。autorelease自动释放类型无需手动发送release消息，否则会使程序崩溃， 系统会退出在autorelease对象作用域时自动释放相应内存空间。如下面的代码中，...</small></li><li><a href='http://www.flyblog.info/catprogramming/157.html' rel='bookmark' title='Permanent Link: iPhone开发之Objective-C学习(3)'>iPhone开发之Objective-C学习(3)</a> <small>到现在为止，已经学习了如何调用类方法以及创建对象。 到目前为止我们还没有看到如何才能定义一个类， 上两次的内容已经多次涉及到类及类的成员，现在我们可以学习一下如何才能定义一个自己的类。 设计一个类（接口） 一般来讲创建一个类需要两部分，首先是申明类的头文件ClassName.h， 还有类实现的源文件ClassName.m， 如果你想在程序中混合C/C++编程那么就需要使用.mm或者.M ，这样编译器会以此判断该类中混合了Objective-C 和 C语言。...</small></li><li><a href='http://www.flyblog.info/catprogramming/165.html' rel='bookmark' title='Permanent Link: iPhone开发之Objective-C学习(5)'>iPhone开发之Objective-C学习(5)</a> <small>Objective-C中的属性 在C++中，类可以有自己的成员变量， 一般公有成员变量可以直接通过类对象访问或修改， 保护成员变量和私有成员变量通过相应的函数来存取，比如 class CPerson { public: int gender;...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>iPhone上的程序很多用表格UITableView来显示数据、做布局等。 当用UITableView显示数据是经常会需要删除、插入数据条目。 SDK提供两种删除UITableViewCell的方法</p>
<ul>
<li>设置整个表格为编辑模式，如果没有做其他编辑风格（editing style)，就会在每个单元格左面有一个圆形红色删除按钮，点击该按钮会在右边显示&#8220;Delete&#8221;按钮 <a href="http://www.flyblog.info/wp-content/uploads/2008/12/windowslivewriteriphone-135a2deletion-control-2.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="50" alt="deletion_control" src="http://www.flyblog.info/wp-content/uploads/2008/12/windowslivewriteriphone-135a2deletion-control-thumb.jpg" width="50" border="0" /></a> </li>
<li>在单元格上划动，会在划动的单元格右边显示&#8220;Delete&#8221;按钮， 这是SDK提供的快捷删除单元格的方法， 官方说法是 swipe to delete </li>
</ul>
<p>要完成删除的动作必须在delegate中实现这个方法</p>

<div class="wp_codebox"><table width="100%" ><tr id="p1967"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p196code7"><pre class="objc" style="font-family:monospace;"><span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>tableView<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>UITableView <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>tableView commitEditingStyle<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>UITableViewCellEditingStyle<span style="color: #002200;">&#41;</span>editingStyle forRowAtIndexPath<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #400080;">NSIndexPath</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>indexPath
<span style="color: #002200;">&#123;</span>
<span style="color: #002200;">&#125;</span></pre></td></tr></table></div>

<p>当点击&#8220;Delete&#8221; 删除按钮是会发送该消息， 在此可以处理删除。 此外如果想在删除按钮显示前以及删除动作完成后调整布局， 可以在delegate中实现下面两个方法</p>

<div class="wp_codebox"><table width="100%" ><tr id="p1968"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code" id="p196code8"><pre class="objc" style="font-family:monospace;"><span style="color: #11740a; font-style: italic;">//</span>
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>tableView<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>UITableView <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>tableView willBeginEditingRowAtIndexPath<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #400080;">NSIndexPath</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>indexPath
<span style="color: #002200;">&#123;</span>
<span style="color: #002200;">&#125;</span>
<span style="color: #11740a; font-style: italic;">//</span>
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>tableView<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>UITableView <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>tableView didEndEditingRowAtIndexPath<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #400080;">NSIndexPath</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>indexPath
<span style="color: #002200;">&#123;</span>
<span style="color: #002200;">&#125;</span></pre></td></tr></table></div>

<p>需要注意的是，如果表格是在UIViewController里并且table的delegate是ViewController, 那么table必须是viewcontroller的view，而不是能是viewController 的view的一个子视图，比如在UIViewController的loadView实现中，以往会这么写</p>

<div class="wp_codebox"><table width="100%" ><tr id="p1969"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code" id="p196code9"><pre class="objc" style="font-family:monospace;"><span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span> loadView
<span style="color: #002200;">&#123;</span>
	UIView<span style="color: #002200;">*</span> contentView <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>UIView alloc<span style="color: #002200;">&#93;</span> initWithFrame<span style="color: #002200;">:</span>...<span style="color: #002200;">&#93;</span>;
	self.view  <span style="color: #002200;">=</span> contentView;
	<span style="color: #002200;">&#91;</span>contentView release<span style="color: #002200;">&#93;</span>;
&nbsp;
	tableView <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>UITableView alloc<span style="color: #002200;">&#93;</span> initWithFrame<span style="color: #002200;">:</span>...<span style="color: #002200;">&#93;</span>;
	<span style="color: #11740a; font-style: italic;">// 初始化表格</span>
	<span style="color: #002200;">&#91;</span>self.view addSubView<span style="color: #002200;">:</span> tableView<span style="color: #002200;">&#93;</span>;
<span style="color: #002200;">&#125;</span></pre></td></tr></table></div>

<p>如果这样写，划动的时候就不会触发willBeginEditingRowAtIndexPath，必须这样写： self.view = tableView 才能触发willBeginEditingRowAtIndexPath。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flyblog.info/catprogramming/196.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Windows Mobile平台获取GPS信息</title>
		<link>http://www.flyblog.info/catprogramming/191.html</link>
		<comments>http://www.flyblog.info/catprogramming/191.html#comments</comments>
		<pubDate>Fri, 05 Dec 2008 09:47:08 +0000</pubDate>
		<dc:creator>Flyblog</dc:creator>
		
		<category><![CDATA[编程开发]]></category>

		<category><![CDATA[GPS]]></category>

		<category><![CDATA[iPhone]]></category>

		<category><![CDATA[windows mobile]]></category>

		<category><![CDATA[wm]]></category>

		<guid isPermaLink="false">http://www.flyblog.info/?p=191</guid>
		<description><![CDATA[Windows Mobile（以下简称WM）的开发相对于iPhone来说简单的多， Apple在界面上明显略胜一筹，但是在实际应用的开发方面还是微软做的更到位。就像在iPhone上如果要想获取GPS信息是个不容易办到的事儿，虽然开放了CLLocationManager类，但是所获得的GPS信息只是过期的cache， 要开发者自己写代码去获得最新的GPS信息，还有可能不响应。 相比之下在WM系统就简单的多， WM5 Pocket SDk5 以后提供了叫做中间媒介驱动的一套函数，可以方便的访问GPS硬件及读取GPS定位信息，其实只有4个函数


Related posts:<ol><li><a href='http://www.flyblog.info/catprogramming/175.html' rel='bookmark' title='Permanent Link: 下载google maps地图'>下载google maps地图</a> <small>最近在写一个iPhone上的程序， 其中用到了google maps， 最简单的做法是在程序中嵌入一个UIWebView然后加载一个网页，在网页中写上一段javascript并包含google maps 地图对象即可， 这样的做法简单但有很大的弊端。 主要是效率以及稳定性的问题， UIWebView似乎是缓存了很多文件， 而又没有开放的接口用于释放清除这些缓存内容，这就导致程序可使用内存越来越小，直至崩溃，尤其是如果要同时使用UIImagePickerController那就更严重。...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Windows Mobile（以下简称WM）的开发相对于iPhone来说简单的多， Apple在界面上明显略胜一筹，但是在实际应用的开发方面还是微软做的更到位。就像在iPhone上如果要想获取GPS信息是个不容易办到的事儿， 虽然开放了CLLocationManager类，但是所获得的GPS信息只是过期的cache， 要开发者自己写代码去获得最新的GPS信息， 还有可能不响应。 相比之下在WM系统就简单的多， WM5 Pocket SDk5 以后提供了叫做中间媒介驱动的一套函数，可以方便的访问GPS硬件及读取GPS定位信息，其实只有4个函数，他们分别是<br />
GPSOpenDevice, GPSGetPosition, GPSGetDeviceState, GPSCloseDevice. 怎么样，简单吧</p>
<p>你只需要在文件中包含头文件</p>

<div class="wp_codebox"><table width="100%" ><tr id="p19110"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p191code10"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &lt;Gpsapi.h&gt;</span></pre></td></tr></table></div>

<p>以及链接Gpsapi.lib库文件即可，接下来就是在开始定位的地方打开设备</p>

<div class="wp_codebox"><table width="100%" ><tr id="p19111"><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code" id="p191code11"><pre class="cpp" style="font-family:monospace;"><span style="color: #666666;">// global vars</span>
<span style="color: #0000ff;">static</span> HANDLE   hGPSEvents<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#123;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #666666;">//</span>
hGPSEvents<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> CreateEvent<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">NULL</span>,<span style="color: #0000ff;">TRUE</span>,<span style="color: #0000ff;">FALSE</span>,<span style="color: #FF0000;">&quot;NewLocationDataEvent&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
hGPSEvents<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> CreateEvent<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">NULL</span>,<span style="color: #0000ff;">TRUE</span>,<span style="color: #0000ff;">FALSE</span>,<span style="color: #FF0000;">&quot;DeviceStateChanged&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
HANDLE	 hGPSDevice <span style="color: #000080;">=</span> GPSOpenDevice<span style="color: #008000;">&#40;</span> hGPSEvents<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span>, hGPSEvents<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span>,<span style="color: #0000ff;">NULL</span>,<span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></td></tr></table></div>

<p>两个由CreateEvent创建的事件对象分别在收到新的gps数据和gps硬件设备有变化的时候通知宿主， 比如当hGPSEvents[0]被触发的时候你可能会调用GPSGetPosition来获取最新的GPSGetPosition数据信息， 同样当hGPSEventsEvents[1]被触发时会使用GPSGetDeviceState获得设备当前状态以便控制程序。 </p>
<p>在打开设备后， 如果卫星信号接收正常，而且接收到数据时会触发数据接收事件，在数据事件被触发时只要调用GPSGetPosition就可以读取最新GPS数据</p>

<div class="wp_codebox"><table width="100%" ><tr id="p19112"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p191code12"><pre class="cpp" style="font-family:monospace;">GPS_POSITION  gpsPos <span style="color: #000080;">=</span> <span style="color: #008000;">&#123;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
gpsPos.<span style="color: #007788;">dwSize</span> <span style="color: #000080;">=</span> <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>GPS_POSITION<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
DWORD dwRet <span style="color: #000080;">=</span> GPSGetPosition<span style="color: #008000;">&#40;</span> hGPSDevice, <span style="color: #000040;">&amp;</span>gpsPos, <span style="color: #0000dd;">3000</span>,<span style="color: #0000dd;">0</span> <span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></td></tr></table></div>

<p>以上表示读取3秒钟之内的有效数据， gpsPos返回的是gps数据信息，其结构为</p>

<div class="wp_codebox"><table width="100%" ><tr id="p19113"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
</pre></td><td class="code" id="p191code13"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">typedef</span> <span style="color: #0000ff;">struct</span> _GPS_POSITION <span style="color: #008000;">&#123;</span>
   DWORD dwVersion<span style="color: #008080;">;</span>			<span style="color: #666666;">// 中间驱动的版本号，始终为GPS_VERSION_1</span>
   DWORD dwSize<span style="color: #008080;">;</span>			<span style="color: #666666;">// 该结构字节大小，必须在传入前赋值</span>
&nbsp;
   DWORD dwValidFields<span style="color: #008080;">;</span>		<span style="color: #666666;">//标明返回的该结构中的哪些字段有效，比如经纬度，速度等， 不是所有GPSGetPosition硬件设备都支持</span>
&nbsp;
   DWORD dwFlags<span style="color: #008080;">;</span>			<span style="color: #666666;">//数据状态， 始终为1</span>
&nbsp;
   SYSTEMTIME stUTCTime<span style="color: #008080;">;</span>	<span style="color: #666666;">//卫星时间</span>
&nbsp;
   <span style="color: #0000ff;">double</span> dblLatitude<span style="color: #008080;">;</span>		<span style="color: #666666;">//维度</span>
   <span style="color: #0000ff;">double</span> dblLongitude<span style="color: #008080;">;</span>		<span style="color: #666666;">//精度</span>
   <span style="color: #0000ff;">float</span>  flSpeed<span style="color: #008080;">;</span>			<span style="color: #666666;">//速度，以节为单位</span>
   <span style="color: #0000ff;">float</span>  flHeading<span style="color: #008080;">;</span>		<span style="color: #666666;">//卫星角度， 正北 为0</span>
   <span style="color: #0000ff;">double</span> dblMagneticVariation<span style="color: #008080;">;</span>		<span style="color: #666666;">//磁偏角度，由地理北极和磁北极误差所致</span>
   <span style="color: #0000ff;">float</span>  flAltitudeWRTSeaLevel<span style="color: #008080;">;</span>	<span style="color: #666666;">//海拔高度</span>
   <span style="color: #0000ff;">float</span>  flAltitudeWRTEllipsoid<span style="color: #008080;">;</span>	<span style="color: #666666;">//相对于地心的高度，这里使用WGS_84椭球做参考</span>
&nbsp;
   GPS_FIX_QUALITY     FixQuality<span style="color: #008080;">;</span>	<span style="color: #666666;">// 误差修正质量</span>
   GPS_FIX_TYPE        FixType<span style="color: #008080;">;</span>		<span style="color: #666666;">//修正类型</span>
   GPS_FIX_SELECTION   SelectionType<span style="color: #008080;">;</span>	<span style="color: #666666;">//二维、三维选择类型</span>
   <span style="color: #0000ff;">float</span> flPositionDilutionOfPrecision<span style="color: #008080;">;</span>	<span style="color: #666666;">// 有卫星方位所造成的误差，数值越小越精确，1.0表示误差最小，50 精度最差</span>
   <span style="color: #0000ff;">float</span> flHorizontalDilutionOfPrecision<span style="color: #008080;">;</span><span style="color: #666666;">// 水平方向误差</span>
   <span style="color: #0000ff;">float</span> flVerticalDilutionOfPrecision<span style="color: #008080;">;</span> <span style="color: #666666;">// 垂直方向误差</span>
&nbsp;
   DWORD dwSatelliteCount<span style="color: #008080;">;</span> <span style="color: #666666;">//读取该数据时卫星数量</span>
   DWORD rgdwSatellitesUsedPRNs<span style="color: #008000;">&#91;</span>GPS_MAX_SATELLITES<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span><span style="color: #666666;">//相应卫星的伪随机数</span>
&nbsp;
   DWORD dwSatellitesInView<span style="color: #008080;">;</span>		<span style="color: #666666;">// GPS设备可覆盖的卫星数量</span>
   DWORD rgdwSatellitesInViewPRNs<span style="color: #008000;">&#91;</span>GPS_MAX_SATELLITES<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// 伪随机数</span>
   DWORD rgdwSatellitesInViewElevation<span style="color: #008000;">&#91;</span>GPS_MAX_SATELLITES<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span><span style="color: #666666;">// 卫星仰角</span>
   DWORD rgdwSatellitesInViewAzimuth<span style="color: #008000;">&#91;</span>GPS_MAX_SATELLITES<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span> <span style="color: #666666;">//卫星方位角</span>
   DWORD rgdwSatellitesInViewSignalToNoiseRatio<span style="color: #008000;">&#91;</span>GPS_MAX_SATELLITES<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span><span style="color: #666666;">// 卫星信号强度</span>
<span style="color: #008000;">&#125;</span> GPS_POSITION, <span style="color: #000040;">*</span>PGPS_POSITION<span style="color: #008080;">;</span></pre></td></tr></table></div>

<p>只要在线程或者消息队列里处理数据接收消息再读取数据即可完成定位及轨迹记录。</p>
<p>最后别忘了调用GPSCloseDevice关闭GPS设备， 实际上GPS中间驱动采用的是计数的方式来开关设备，当你调用GPSOpenDevice时如果设备处于关闭状态就将其打开， 否则如果已经被其它程序打开就只把计数加1， 关闭时如果计数为0，就关闭硬件设备，否则只是减少计数。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flyblog.info/catprogramming/191.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>iPhone开发之打包zip文件</title>
		<link>http://www.flyblog.info/catprogramming/186.html</link>
		<comments>http://www.flyblog.info/catprogramming/186.html#comments</comments>
		<pubDate>Thu, 04 Dec 2008 08:22:10 +0000</pubDate>
		<dc:creator>Flyblog</dc:creator>
		
		<category><![CDATA[娱乐生活]]></category>

		<category><![CDATA[编程开发]]></category>

		<category><![CDATA[iPhone]]></category>

		<category><![CDATA[minizip]]></category>

		<category><![CDATA[Objective-C]]></category>

		<category><![CDATA[zip]]></category>

		<guid isPermaLink="false">http://www.flyblog.info/?p=186</guid>
		<description><![CDATA[程序需要往服务器上上传文件， 因为iPhone用户往往是用gprs或者edge网络，为了节约流量以及加快上传速度，所以只好将要上传的文件打包成zip文件，这样体积小了， 也为用户节约了时间和金钱。 开始的时候抱有意思希望去挖掘SDK文档， 未果， sdk不提供zip相关接口


Related posts:<ol><li><a href='http://www.flyblog.info/catprogramming/202.html' rel='bookmark' title='Permanent Link: Objective-C class for zip/unzip zip format files'>Objective-C class for zip/unzip zip format files</a> <small>This is a simple class for compressing and extracting files....</small></li><li><a href='http://www.flyblog.info/catprogramming/151.html' rel='bookmark' title='Permanent Link: iPhone开发之Objective-C学习(2)'>iPhone开发之Objective-C学习(2)</a> <small>上次学习了Objective-C的基础知识和函数调用的基本规则， 现在我们在来了解一下新的概念&#8212;&#8212;Accessors，简单意思就是访问器。 在Objective-C中所有的类成员变量默认都是私有的， 你不可能直接访问这些成员变量。你需要用setValue 和 getValue或者value来赋值或者取值，你也可以在申明变量时制定setter和getter，下面是Objective-C1.x的语法格式 [friend setName:@"Mike"]; value =...</small></li><li><a href='http://www.flyblog.info/catprogramming/157.html' rel='bookmark' title='Permanent Link: iPhone开发之Objective-C学习(3)'>iPhone开发之Objective-C学习(3)</a> <small>到现在为止，已经学习了如何调用类方法以及创建对象。 到目前为止我们还没有看到如何才能定义一个类， 上两次的内容已经多次涉及到类及类的成员，现在我们可以学习一下如何才能定义一个自己的类。 设计一个类（接口） 一般来讲创建一个类需要两部分，首先是申明类的头文件ClassName.h， 还有类实现的源文件ClassName.m， 如果你想在程序中混合C/C++编程那么就需要使用.mm或者.M ，这样编译器会以此判断该类中混合了Objective-C 和 C语言。...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>程序需要往服务器上上传文件， 因为iPhone用户往往是用gprs或者edge网络，为了节约流量以及加快上传速度，所以只好将要上传的文件打包成zip文件，这样体积小了， 也为用户节约了时间和金钱。 开始的时候抱有意思希望去挖掘SDK文档， 未果， sdk不提供zip相关接口，在apple论坛打听了一下，很多dx给的建议是用apple script在后台打包， 对此领域不熟悉，放弃。 好在iPhone的官方SDK支持zLib库，这就好了， 找来minizip，一个封装的挺好的C/C++ zip库， 动手创建Objective－C对象封装之， 只需要几行代码即可完成， 简单实用。</p>
<p>使用方法如下</p>

<div class="wp_codebox"><table width="100%" ><tr id="p18614"><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code" id="p186code14"><pre class="objc" style="font-family:monospace;">		<span style="color: #a61390;">BOOL</span> ret <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>zip CreateZipFile2<span style="color: #002200;">:</span>l_zipfile<span style="color: #002200;">&#93;</span>;
		ret <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>zip addFileToZip<span style="color: #002200;">:</span>l_photo newname<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;photo.jpg&quot;</span><span style="color: #002200;">&#93;</span>;
		<span style="color: #a61390;">if</span><span style="color: #002200;">&#40;</span> <span style="color: #002200;">!</span><span style="color: #002200;">&#91;</span>zip CloseZipFile2<span style="color: #002200;">&#93;</span> <span style="color: #002200;">&#41;</span>
		<span style="color: #002200;">&#123;</span>
			l_zipfile <span style="color: #002200;">=</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;&quot;</span>;
		<span style="color: #002200;">&#125;</span>
		<span style="color: #002200;">&#91;</span>zip release<span style="color: #002200;">&#93;</span>;</pre></td></tr></table></div>

<p><strong>其中 l_photo是之源文件路径，  @&#8221;photo.jpg&#8221; 是在新的文件名（不带路径）</strong></p>
<p>之前没有实现 解压缩的代码， 今天补上了， 使用起来也和压缩差不多，下面时用法演示</p>

<div class="wp_codebox"><table width="100%" ><tr id="p18615"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code" id="p186code15"><pre class="objc" style="font-family:monospace;">	ZipArchive<span style="color: #002200;">*</span> za <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>ZipArchive alloc<span style="color: #002200;">&#93;</span> init<span style="color: #002200;">&#93;</span>;
	<span style="color: #a61390;">if</span><span style="color: #002200;">&#40;</span> <span style="color: #002200;">&#91;</span>za UnzipOpenFile<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;/Volumes/data/testfolder/Archive.zip&quot;</span><span style="color: #002200;">&#93;</span> <span style="color: #002200;">&#41;</span>
	<span style="color: #002200;">&#123;</span>
		<span style="color: #a61390;">BOOL</span> ret <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>za UnzipFileTo<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;/Volumes/data/testfolder/extract&quot;</span> overWrite<span style="color: #002200;">:</span><span style="color: #a61390;">YES</span><span style="color: #002200;">&#93;</span>;
		<span style="color: #a61390;">if</span><span style="color: #002200;">&#40;</span> <span style="color: #a61390;">NO</span><span style="color: #002200;">==</span>ret <span style="color: #002200;">&#41;</span>
		<span style="color: #002200;">&#123;</span>
		<span style="color: #002200;">&#125;</span>
		<span style="color: #002200;">&#91;</span>za UnzipCloseFile<span style="color: #002200;">&#93;</span>;
	<span style="color: #002200;">&#125;</span>
&nbsp;
	<span style="color: #002200;">&#91;</span>za release<span style="color: #002200;">&#93;</span>;</pre></td></tr></table></div>

<p>代码在附件中</p>
<p><a href='http://www.flyblog.info/wp-content/uploads/2008/12/zipfile-oc.zip'>Zip格式解压缩Objective C封装类</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flyblog.info/catprogramming/186.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>solve crashes problem with UIImagePickerController</title>
		<link>http://www.flyblog.info/catprogramming/177.html</link>
		<comments>http://www.flyblog.info/catprogramming/177.html#comments</comments>
		<pubDate>Wed, 03 Dec 2008 08:20:00 +0000</pubDate>
		<dc:creator>Flyblog</dc:creator>
		
		<category><![CDATA[编程开发]]></category>

		<category><![CDATA[iPhone]]></category>

		<category><![CDATA[memory leak]]></category>

		<category><![CDATA[UIImagePickerController]]></category>

		<guid isPermaLink="false">http://www.flyblog.info/?p=177</guid>
		<description><![CDATA[My application use UIImagePickerController for taking photos. It works well but one serious problem -- memory crashes.  The application crashes always after taking several photos, mostly around 4-6. Looked through the debug information, I found it occurs memory warning message frequently and crashes after entering didReceivedMemoryWaning twice. Viewing the memory use in Instrument (which is the performance tool integrated in xcode) , the memory in use increase about 18 MB, it's really horrible. After a long time research, I got some solutions to improve it.


Related posts:<ol><li><a href='http://www.flyblog.info/catitnews/41.html' rel='bookmark' title='Permanent Link: Sun收购 MySQL'>Sun收购 MySQL</a> <small>Sun微系统公司今日宣布将要收购目前广泛流行的开源数据库软件公司--MySQL。 为此Sun付出8-10亿美元现金购买MySQL股票以及2亿期权。整个收购工作将在今年3月底4月初完成。Sun宣称 MySQL将会集成在Sun公司现有的软件及销售、服务系统当中， 并使用现有的各种发布渠道推广。至此Sun将同目前的的竞争对手微软、IBM、Oracle等竞争对手争抢150亿美元的数据库市场，同时带来包括google、yahoo、facebook以及nokia等大客户。 同时Sun将进一步支持LAMP软件平台，即Linux + Apache + MySQL +...</small></li><li><a href='http://www.flyblog.info/catinternet/37.html' rel='bookmark' title='Permanent Link: namecheap免费DDNS服务'>namecheap免费DDNS服务</a> <small>namecheap是美国域名注册商现已成和godaddy一样的顶级域名注册商， 经过多年使用感觉服务非常好。如果你使用namecheap注册域名namecheap将免费提供动态域名解析服务即DDNS， 如果你需要在自己家中或者在内网暂时性的建立网站而又苦于没有固定IP得话，那么DDNS动态域名就是非常好得解决问题的途径， 很多人使用花生壳， 不过现在花生壳对于顶级域名的解析是收费服务（专业服务100元/年， 顶级域名解析50元/个/年）， 但是如果你是在namecheap注册自己的域名， 那么namecheap免费提供动态域名DDNS解析服务，而且经过使用非常稳定，这为临时性在内网做网站的朋友提供了很好得选择机会。 具体操作也很简单， 参照以下视频教程即可点击在新窗口中打开...</small></li><li><a href='http://www.flyblog.info/catitnews/16.html' rel='bookmark' title='Permanent Link: 简单易用的图片编辑软件PAINT.net'>简单易用的图片编辑软件PAINT.net</a> <small>windows用户都应该知道并且用过系统自带的Paint画笔软件，对于一些简单的处理来说简单快捷，但画笔程序太过简陋，往往不能满足需求。 04年由华盛顿大学的一个研发小组用C#语言开发升级版的画笔程序，命名为Paint.net，看名字让人自然想起是基于.net技术开发，经过几年的不断完善和升级，现在最新的发布版本好事V3.22。该软件是开原项目，源代码遵循MIT协议， 程序开发人员可以免费下载程序源代码，普通用户可以免费下载使用，虽然是免费的开原项目，但软件功能强大，比windows自带的paint画笔程序增加了大量的实用性功能， 许多功能操作和Photoshop相似， 主要功能包括* 支持多图层* 支持多种图片格式，比如流行的JPG，BMP，PNG,GIF,TIFF 等* 内置多种滤镜效果，模糊、浮雕、人相优化、扭曲等* 支持photoshop滤镜*...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>My application use UIImagePickerController for taking photos. It works well but one serious problem &#8212; memory crashes.  The application crashes always after taking several photos, mostly around 4-6. Looked through the debug information, I found it occurs memory warning message frequently and crashes after entering didReceivedMemoryWaning twice. Viewing the memory use in Instrument (which is the performance tool integrated in xcode) , the memory in use increase about 18 MB, it&#8217;s really horrible. After a long time research, I got some solutions to improve it.</p>
<p>1. hold an UIImagePickerController instance during the lifetime of the application, this will avoid lots of memory leaks</p>
<p>2. set allowImageEditing property of UIImagePickerController to NO, if it&#8217;s not so necessary </p>
<p>BTW, <a target="_blank" href="http://www.iphonedevsdk.com/forum/iphone-sdk-development/"><strong>this forum is so helpful</strong></a> </p>
<p><a  target="_blank" href="http://www.cocoachina.com">Cocoa China</a>也是非常好的网站，论坛高手如云，给过我很多帮助，特此感谢</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flyblog.info/catprogramming/177.html/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
