iPhone开发【一】从HelloWorld開始
转载请注明出处,原文网址: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開始的更多相关文章
- cocos2dx游戏开发学习笔记2-从helloworld開始
一.新建project 具体安装和新建project的方法在cocos2dx文件夹下的README.md文件里已经有具体说明,这里仅仅做简介. 1.上官网下载cocos2dx-3.0的源代码.http ...
- XMPP开发之从零開始
对于server的搭建和设置.我在这里就不再多说了.有好多前辈已经帮大家攻克了.能够參考下这篇博客 XMPPserver配置 我依照这个博客配置好了,server后,然后在网上參照代码写了一个小的de ...
- 从零開始开发Android版2048 (一)初始化界面
自学Android一个月多了,一直在工作之余零零散散地看一些东西.感觉经常使用的东西都有些了解了,可是一開始写代码总会出各种奇葩的问题.感觉还是代码写得太少.这样继续杂乱地学习下去进度也太慢了,并且学 ...
- 開始学习swift开发
近期要開始学习swift开发了,接下来的日子,会记录学习swift的历程.
- 从零開始开发Android版2048 (四) 分数、重置、结束
这一篇的内容主要是在上一篇的基础上,增加分数计算(包含当前分数和最高分数).游戏结束的推断以及游戏界面的重置这三个部分的功能. 一.分数的计算和保存 首先,2048这个游戏的分数包含 ...
- 从零開始学习OpenCL开发(一)架构
多谢大家关注 转载本文请注明:http://blog.csdn.net/leonwei/article/details/8880012 本文将作为我<从零開始做OpenCL开发>系列文章的 ...
- 从今天開始学习iOS开发(iOS 7版)--实现一款App之Foundation框架的使用
iOSFoundation框架 当你着手为你的应用编写代码的时候,你会发现有很多可供使用的Objective-C的框架类,当中尤其重要的就是基础框架类.它为平台全部的应用提供基础服务.基础框架类中包括 ...
- 【React Native开发】React Native配置执行官方样例-刚開始学习的人的福音(8)
),React Native技术交流4群(458982758),请不要反复加群! 欢迎各位大牛,React Native技术爱好者加入交流!同一时候博客左側欢迎微信扫描关注订阅号,移动技术干货,精彩文 ...
- DirectX游戏开发——从一个小游戏開始
本系列文章由birdlove1987编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/26364129 写在前面:自 ...
随机推荐
- java正则去掉小数点后多余0
需求:已知字符串为一数字字符形式,多为float,double转换过来,将其后多余的0与.去掉. package test; /** * 去掉多余的.与0 * @author Hust * @Time ...
- 使用回溯法求所有从n个元素中取m个元素的组合
不多说了,直接上代码,代码中有注释,应该不难看懂. #include <stdlib.h> #include <stdio.h> typedef char ELE_TYPE; ...
- 百度2015校园招聘自然语言处理project师面试
面了一个多小时,大致回想下 1. 介绍一下简历上的项目 这个讲了好长时间,由于我做的是生物信息,面试官听得不太明确. 2. 一个城市每对夫妇都要生到一个男孩才停止生育,问终于该城市的男女比例 1:1, ...
- 十天学习PHP之第四天
学习目的:学会连接数据库 PHP简直就是一个函数库,丰富的函数使PHP的某些地方相当简单.建议大家down一本PHP的函数手冊,总用得到. 我这里就简单说一下连接MYSQL数据库. 1.mysql ...
- 【E2LSH源代码分析】p稳定分布LSH算法初探
上一节,我们分析了LSH算法的通用框架,主要是建立索引结构和查询近似近期邻.这一小节,我们从p稳定分布LSH(p-Stable LSH)入手,逐渐深入学习LSH的精髓,进而灵活应用到解决大规模数据的检 ...
- PHP - 拒绝低版本PHP
//判断PHP版本是否太低 if (PHP_VERSION < '4.1.0') { echo 'Version is to Low!'; exit; }
- 使用开源的PullToRefreshScrollView scrollTo和scrollby遇到的问题
在项目中使用了开源的com.handmark.pulltorefresh.library 下拉刷新组件,当中使用了PullToRefreshScrollView ,须要调用scrollTo或者scro ...
- CSDN-Code平台使用过程中的5点经验教训
昨天又创建了一个项目,fucms,可是本地一直没有权限提交,搞了非常久,试了几十次,都不行,我是非常的灰心和郁闷. 刚刚,和CSDN-Code的官方客服咨询了非常久非常久,最终摸索出来了一些心得体会 ...
- CSU1664: 防水堤坝
Description 在太平洋的一个小岛上,岛民想要建立一个环岛的堤坝,我们能够将小岛简化为一个二维平面,你须要使用K条边(这些边要么是水平或者垂直长度为1的边,要么是45度倾斜的长度为√2的边)围 ...
- 单击Android设备后退键,主屏幕键以及旋转屏幕如何影响Activity的生命周期
单击设备的后退键,相当于通知Android系统“我已完成activity的使用,现在不需要它了.”接到指令后,系统立即销毁了activity.即调用onPause()->onStop()-> ...