转载请注明出处。原文网址:http://blog.csdn.net/m_changgong/article/details/8013553 作者:张燕广

从经典的HelloWorld開始踏入iPhone开发的大门吧!

keyword:HelloWorld iPhone IOS

1、打开xcode,选择“Create a New Xcode project”

2、xcode中的project分为两大类,一是IOS,二是Mac OS X,前者是进行iPhone/iPad开发,后者是进行Mac PC开发。

在IOS类别中选中“Application”,然后选择"Single View Application"project模板(各模板功能以下有解说)

xcodeproject模板说明:

Master-Detail Application:

    iPhone设备:相应xcode4.0的Navigation-based Application,基于导航模式的project模板。

    iPad设备:相应xcode4.0的Splite View-based Application,基于切割模式的project模板。

OpenGL Game:相应xcode4.0的OpenGL ES Application。

Single View Application:相应xcode4.0的View-based Application,基于单视图的project模板。

Tabbed Application:相应xcode4.0的Tab Bar Application。基于Tab Bar的project模板。

Utility Application:相应xcode4.0的Utility Application。非常少用到,眼下还没用过。

Empty Application:相应xcode4.0的Window-based Application,创建一个空白project。

3、Product Name:即project生产的产品(iPhone应用程序)的名称

Company identifier:com.zyg.ios,用于应用程序包名称

Bundle Identifier:Company identifier+Product Name

Class Prefix:project生成的类名称都会加上这里填写的前缀

Device Family:project相应的设备类型。iPhone或者iPad(这两种设备的开发是有差别的,后面文章会讲到)

Use Storyboards:是否使用故事板 不要选中,后面文章会专门解说故事板

Use Automatic Reference Counting:自己主动引用计数。选中后内存释放工作就不须要自己处理了。不要选中。学习iPhone开发时一定要学着自己控制内存释放,真正开发时能够选中该项。

Include Unit Tests:是否包括单元測试。不要选中,后面文章专门解说这个。

4、选中文件夹IOSDev,保存该project

5、展开HelloWorldproject

HelloWorld:这个文件夹是个逻辑文件夹。在文件系统并不存在这个文件夹。

它在Xcodeproject中是一个Group。开发中基本都在该Group下创建子Group或者文件。

    HelloWorldAppDelegate.h:代理类头文件

    HelloWorldAppDelegate.m:代理类源文件

    HelloWorldViewController.h:视图控制器类头文件

    HelloWorldViewController.m:视图控制器类源文件

    HelloWorldViewController.xib:包括用户接口相关的组件

    Supporing Files:能够存放源文件,一般都是存放资源文件。

        HelloWorld-Info.plist:包括project信息的属性列表。

InfoPlist.strings:应用程序国际化用到,包括多国语言翻译。

        main.m:包括iPhone应用程序入口函数main,一般这个文件不须要我们做不论什么改动。

        HelloWorld-Prefix.pch:包括一些头文件列表。

xcode会预编译这些头文件,假设project中须要大量全局变量。也能够在此文件里定义宏变量作为全局变量。

Frameworks:引入的系统框架,默认引入

    UIKit.framework:ios的UI组件类库

    Foundation.framework:ios基础类库

    CoreGraphics.framework:2D画图类库

Products:包括project编译后生产的产品HelloWorld.app

6、通过上面对文件夹结构的解说我们知道HelloWorldViewController.xib是存放用户接口相关的组件的。单击打开该文件,在xcode右下角找到label组件(能够在搜索框中输入label高速定位该组件)。拖动该组件到空白view上,拖动过程中会出现水平、垂直对齐蓝线,使label水平、垂直居中与label中。然后在双击该lable。输入“Hello World”。

7、按住Command(简称Cmd)+B编译project,然后Cmd+R。执行project,效果例如以下

总结:

1、程序的入口在哪儿?启动流程?

1)在main.m中的main函数中,该函数调用了UIApplicationMain。且最后一个參数用到了HelloWorldAppDelegate,我们推測UIApplicationMain函数启动了HelloWorldAppDelegate类。

2)HelloWorldAppDelegate.m中didFinishLaunchingWithOptions方法中又初始化了视图控制器HelloWorldViewController。初始化參数中用到了@"HelloWorldViewController",事实上就是HelloWorldViewController.xib。

3)HelloWorldViewController.xib包括了用户接口组件,所以视图控制器HelloWorldViewController初始化完成后,UI组件就展示在view上了。我们Hello World就显示模拟器屏幕上了。

对程序启动流程有上面的概念就可以,随着后面的学习会逐渐加深。更加清晰 。

2、label组件能够拖到view上显示,不论什么其他复杂的组件理论上都能够这样做。从而显示出来。

3、HelloWorldViewController既然叫视图控制器,那么对视图的控制操作应该在该类中实现。

怎么与label交互,控制label的显示、内容等等呢?请看下一篇。。。

下载本文来源

iPhone发展【一】从HelloWorld开始的更多相关文章

  1. 关于ios越狱开发的那些事

    也许吧,每每接触某些新东西的时候,都有点犯晕吧,这不是应该要的. 第一次接触ios越狱开发,也是这样吧.这篇主要是从无到有的说一下ios越狱的开发,网上很多的教程大部门都比较旧了吧,放在新设备上总是出 ...

  2. iPhone开发【一】从HelloWorld開始

    转载请注明出处,原文网址:http://blog.csdn.net/m_changgong/article/details/8013553 作者:张燕广 从经典的HelloWorld開始踏入iPhon ...

  3. iOS发展 ---- 至iPhone 6自适应布局设计 Auto Layout

    Apple从iOS 6增加了Auto Layout后開始就比較委婉的開始鼓舞.建议开发人员使用自适应布局,可是到眼下为止,我感觉大多数开发人员一直在回避这个问题,无论是不是因为历史原因造成的,至少他们 ...

  4. jQuery Mobile发展新闻阅读器,适应iphone和android打电话

    程序猿是很不赖,你知道. 我们经常新浪,腾讯.雅虎等各大网站看到上述新闻.他们还推出了自己的移动新闻阅读器.今天,我自己用的jQuery Mobile 为了实现这一功能,.图像大小上传限制的大小250 ...

  5. 从计算机语言的发展到我的第一行代码(HelloWorld)

    程序:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合 算法:解决问题的具体方法和步骤 流程图是算法的一种图形化表示方式. 流程图直观.清晰,更有利于人们设计与理解算法. 它使用一组 ...

  6. Xcode5下使用纯代码构建简单的HelloWorld程序

    转自:http://blog.csdn.net/developerxyf/article/details/12874935 新发布的Xcode5在使用模板创建工程的时候取消了以往是否要选择storyb ...

  7. iOS系列 基础篇 01 构建HelloWorld,剖析并真机测试

    iOS基础 01 构建HelloWorld,剖析并真机测试 前言: 从控制台输出HelloWorld是我们学习各种语言的第一步,也是我们人生中非常重要的一步. 多年之后,我希望我们仍能怀有学习上进的心 ...

  8. Python小白的发展之路之Python基础(二)

    列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1.列表.元组操作 (1)列表 列表是可变的(mutable)--可以改变列表的内容,这不同于字符串和元组,字符串和元组都是不 ...

  9. 窥探Swift编程之别样的HelloWorld

    从今天就开始陆陆续续的发布一些有关Swift语言的东西,虽然目前在公司项目开发中Objective-C还是iOS开发的主力军,但是在不久的将来Swift将会成为iOS开发中的新生宠儿.所以在在Xcod ...

随机推荐

  1. fiddler4使用教程(转)

    Fiddler的基本介绍 Fiddler的官方网站:  www.fiddler2.com Fiddler官方网站提供了大量的帮助文档和视频教程, 这是学习Fiddler的最好资料. Fiddler是最 ...

  2. c++野指针 之 实战篇

    一:今天做poj上的3750那个题,用到了list的erase方法.提交之后总是报runtime error! 纠结了好长时间.曾有一度怀疑过vector的erase和list的erase处理方式不一 ...

  3. WebApi异常

    WebApi异常处理解决方案   前言:上篇C#进阶系列——WebApi接口传参不再困惑:传参详解介绍了WebApi参数的传递,这篇来看看WebApi里面异常的处理.关于异常处理,作为程序员的我们肯定 ...

  4. Knockout应用开发指南 第六章:加载或保存JSON数据

    原文:Knockout应用开发指南 第六章:加载或保存JSON数据 加载或保存JSON数据 Knockout可以实现很复杂的客户端交互,但是几乎所有的web应用程序都要和服务器端交换数据(至少为了本地 ...

  5. Spring Data Redis—Pub/Sub(附Web项目源码) (转)

    一.发布和订阅机制 当一个客户端通过 PUBLISH 命令向订阅者发送信息的时候,我们称这个客户端为发布者(publisher). 而当一个客户端使用 SUBSCRIBE 或者 PSUBSCRIBE ...

  6. HDU 1164 Eddy's research I【素数筛选法】

    思路:将输入的这个数分成n个素数的相乘的结果,用一个数组存储起来.之后再输出就能够了 Eddy's research I Time Limit: 2000/1000 MS (Java/Others)  ...

  7. java环境变量设置--编写一年java,竟不会配变量了

    java环境变量设置 1.打开我的电脑--属性--高级--环境变量 2.新建系统变量JAVA_HOME 和CLASSPATH 变量名:JAVA_HOME 变量值:C:\Program Files\Ja ...

  8. 用C++语言开发Android程序 配置开发环境

    转自:http://www.cnblogs.com/yaotong/p/3622430.html 用C++语言开发Android程序 配置开发环境   如果你是一个C++语言的死忠,你喜欢C++语言到 ...

  9. zoj 3822 Domination(2014牡丹江区域赛D称号)

    Domination Time Limit: 8 Seconds      Memory Limit: 131072 KB      Special Judge Edward is the headm ...

  10. DWR异步产生的问题

    默认情况下,DRW是异步的.当数据量大的时候,数据还未加载完就已经提交了.这样会照成数据丢失.为了解决这个问题应该改变DWR的数据加载方式,改为同步的.这样就不会照成数据丢失. DWREngine.s ...