去年当Google发布了一款iPhone应用程序时引起了一段辩论:他们的程序使用了未公开的API来检测是否电话靠近说话者的耳朵。
而在iPhone 3.0 SDK中,此API可以被任何程序使用了。本文展示怎样使用此API:
去年当Google发布了一款iPhone应用程序时引起了一段辩论:他们的程序使用了未公开的API来检测是否电话靠近说话者的耳朵。
而在iPhone 3.0 SDK中,此API可以被任何程序使用了。本文展示怎样使用此API:
有一个印度的朋友向我询问了几个有关iPhone开发的问题,下面是我的回答。
1) 我目前还不是注册的开发者,我将在2,3天内注册,我不能完成代码签名的原因是不是这个?
要进行代码签名,有两种方式,一种是正确的方式,一种是错误的方式。正确的方式是使用Apple开发者许可证,错误的方式是使用Cydia。我推荐你使用正确的方式。所以,再多等2,3天,你就可以安装应用程序到你的设备上了。
2)注册后怎样获取证书…?(代码签名证书…)可以告诉我详细的步骤吗?
一旦你获得了许可证(apple会email你), 你就可以开始访问 http://developer.apple.com/iphone的Program Portal。从那里可以获取证书(certificate)。
3) 怎样发布我的应用程序…(可以不需要App-store进行程序发布吗?)
你应该知道,数以百万计的iPhone用户中的80%到90%是通过Apple store下载程序的。 但是如果你的目标对象是“越狱”用户,你需要通过Cydia。(译者注:或者通过Icy)。如果你使用的是Apple官方SDK,那么你可以同时在Cydia和Apple store 上发布你的应用程序。
4) 总共有多少证书?(像代码签名证书之类)
有两种类型的证书:
1. 开发者证书,你可以用来在Xcode调试器中测试程序。.
2. 发布证书,用来发布给你的应用程序给客户或发送给客户。
5) 我是否不进行注册而让我的程序运行在设备上(“越狱”的设备)?
你可以在“越狱”的设备上运行程序,你需要的只是Apple开发者许可证或通过Cydia安装程序。
XML格式使用越来越广泛,不论是游戏还是普通应用软件都有使用。而我喜欢用xml作为配置文件。XML解析的方法实在很多,最根本的两种是SAX和DOM。SAX需要一边读取文件一边解析,速度较快;而DOM采用树状结构保存解析文件,使用方便。iPone自带的XML解析器一则无法跨平台,一则使用不便,还有一些bug(我是指SDK 2.0,新版本SDK 3.0的XML解析器没用过,所以没有发言权),所以我决定使用其他开源XML解析器。开源的XML解析器也有很多种,比如libxml2,TouchXML(iPhone版),tinyxml等。其中tinyxml简单易用,如果你不要求诸如DTD等功能,那么tinyxml绝对应该是你的首选。我采用的是ticpp(tinyxml的cpp版本,采用DOM方法)。
本教程将介绍怎样通过代码从地址簿中获取联系人信息。在iPhone上这实际上比你想象的更容易。你可以提取任何存储于地址簿中的信息,如图片(照片),email地址。注意: iPhone提供了简易的用户联系信息的提取方法但附加了编辑限制。你的程序可以访问所有信息但不允许修改。本教程中,我将介绍提取用户联系信息的简单步骤,最终输出如下所示:
这几天有朋友向我抱怨Apple Development Center循环登录问题(即输入用户名和密码后又进入登录页面,无任何错误提示),这让我回忆起去年在一段悲惨遭遇,有感而发。
去年我在国内使用铁通网络,遇到过此问题,找ISP,人家一句话就打发我了,你其他网站都可以登录,那一定是Apple的网络问题了。我一想也是,至少Apple会知道在什么情况下会发生这种现象吧。于是乎赶紧联系Apple中国的客服,这一联系不要紧,接连三个月的拉锯战,让我深深体会了当年秋菊打官司的艰辛。说句实话,我并没打算Apple真能给我一个完美的解决方案(实际上我通过代理还是可以登录的,虽然十分之麻烦,而下载SDK此类的工作根本是无法进行的了),但他们每次email的回复都不竟让我怀疑他们是不是把每个客户当成了脑残(对不起,并非歧视残疾人)。通篇的废话,虚假的客套,每次都是诸如“请使用其他浏览器,请清除cache或重启电脑……”的回答,让我最后不得不放弃“讨个说法“的念头。实际上据我所知,这不光是Apple中国独有的问题,我在Apple开发者论坛上也看到一些老外遇到同样的问题,至今也无法解决。
商场如战场,每个人特别是Steve Jobs这种商场中的精英更是深谙此理。那么,“用户是上帝”这句放之四海皆准的道理,为什么就被Apple置之脑后了呢?我想可能因为我们是开发者,而不是最终用户吧?当然,生活还要继续,如果我们还打算通过Apple Store赚钱的话,也只有忍下去了,谁让我们有五千年”谦和忍让“的文化熏陶呢?
iPhone集成了许多应用程序,比如说浏览器,email,电话拨号等,但怎样在你的应用程序中调用这些程序呢?简单的方法是使用openURL。方法如下:
1 2 |
1 2 |
1 2 |
1 2 3 | [[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"mailto:emailAdress?subject=你好&body=我的邮件"]]; |
在开始学习iPhone编程前,你必须知道的五件事:
1. 你需要一台安装了mac os x( mac mini, mac book 或 mac pro, 译者注:甚至是一台x86 pc)
2. 申请Apple开发者许可证(99美元)
3. 免费下载SDK,你生成的应用程序可以免费在模拟器上运行。但若想在iPhone/iPod touch上运行并提交到apple store,那么你必须拥有一个开发者许可证。
4. 为测试你的程序,你必须拥有iPod 或 iPhone,因为模拟器和真机的某些特性如内存是不同的。(译者注:另外像重力感应等在模拟器上是不好测试的)。
5. 编程语言是Objective – C,它十分类似于 C/C++,甚至于像我这样的Java开发者也不需要花很多时间学会Object-C。
应该不需要解释了吧。见以下代码:
1 2 |