iOS开发需要一台Mac电脑、Xcode以及iOS SDK。因为苹果设备都具有自己封闭的环境,所以iOS程序的开发必须在Mac设备上完成(当然,黑苹果应该也是可以的,但就需要花很多的精力去折腾基础环境),Xcode是一个集成开发环境,包括了编辑器、调试、模拟器等等一系列方便开发和部署的工具,iOS SDK则是开发应用所必需,不同的SDK分别对应不同的iOS版本或设备,通常我们需要下载多个iOS SDK以确保我们开发的程序能够在不同版本的iOS上正常运行。

 
创建新工程
 
Xcode提供了很多种工程模版,包括Master-Detail Application、OpenGL Game、Page-Based Application、Single View Application、Tabbed Application、Utility Application、Empty Application等。选择“File->New->Project”弹出下面的对话框。我们这里选择一个Empty Application,通过这个来学习了解iOS程序的结构。
 
点击Next后,继续到下一个界面。填写产品名称和类前缀、公司标识等信息。
 
 
点击Next,会提示选择工程存放的文件夹,选择完成后,就会弹出下面的界面。这个界面就是Xcode的工作界面。Xcode作为一个IDE开发环境,为我们提供了iOS程序开发所需要的一切。编译器、调试工具、模拟器、编辑器、版本控制等等。像所有的IDE工具一样,我们应当花一些时间来了解自己的工具,可以通过帮助或者其他的一些途径。本文就不再涉及Xcode的使用了。
 
 
因为我们的工程是基于模板创建的,所以基本的app环境已经设置好了。即便我们此时还没有输入任何代码,我们的空白程序已经可以运行了。要运行App,可以选择使用iOS Simulator(iOS模拟器)。模拟器可以提供不同类型的硬件的模拟,iPad、iPhone等等。可以通过点击工具栏左侧的运行图标,或者从菜单Product->Run,或者快捷键Command+R运行你的程序。
 

代码概览
 
使用Empty Application创建的应用,会默认创建一些源代码文件来建立App运行的基础。大多数工作是在 UIApplicationMain 这个函数中完成的,这个函数通过 main.m 文件自动调用。UIApplicationMain 函数创建一个应用对象来创建App运行的基础环境,包括一个无限循环来响应程序中的事件。
 
 
下面来看看Main.m文件的主要内容。UIApplication使用了 @autoreleasepool 声明来支持App的内存管理。自动计数器Automatic Reference Counting(ARC)来跟踪对象的使用情况。
 
 
UIApplicationMain 的调用创建了App的两个重要对象。1、一个UIApplication类的实例,也叫做 application object;2、一个WSQAppDelegate实例,也叫做app delegate。app delegate创建了一个空白的窗口来展示应用的内容,这就是我们定义应用的地方。图中的WSQAppDelegate的接口定义在 WSQAppDelegate.h中,实现定义在WSQAppDelegate.m中。
 
当应用启动的时候,application object 会调用app delegate中定义的方法,来完成特定的任务。app delegate的接口文件中,仅定义了一个UIWindow的属性。
 
 
WSQAppDelegate.m中定义了多个响应系统行为的函数,包括应用启动、激活、进入后台等等。我们也可以在这些方法中加入自己的处理逻辑。
 
 
创建Storyboard
 
Storyboard是App用户界面的可视化表现,现实屏幕内容以及各种过度效果。选择File->New->File(或者使用Command-N快捷键),选择下一步后在Device Family中选择iPhone,然后继续下一步选择文件保存的位置。Storyboard文件创建完成后,在工程的属性中指定Main Interface为创建的Storyboard。Storayboard只是一个空的容器,此时执行程序的话,并不能够获得任何界面,接下来需要在Storyboard中添加场景Scence。
 
 
选择Main.Storyboard,Xcode会打开Interface Builder,展现出一个空白的画布。然后打开Object Library,找到View Controller,拖拽到Storyboard中就可以了。可以看到View Controller左侧有一个箭头,这个表示当前的Scene是App的初始化界面,这个时候我们可以运行程序,在模拟器中看到这个空白的界面,表明我们所有的配置都是成功的。
 
 
接下来,我们就可以选择把Label、Input等各种控件拖到View Controller上来为自己的应用进行布局了,还可以调整字体大小、颜色等等选项,初级的App创建就这样完成了。 

 

 
 
参考资料:

iOS开发学习笔记:基础篇的更多相关文章

  1. Python学习笔记基础篇——总览

    Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...

  2. Python学习笔记——基础篇【第一周】——变量与赋值、用户交互、条件判断、循环控制、数据类型、文本操作

    目录 Python第一周笔记 1.学习Python目的 2.Python简史介绍 3.Python3特性 4.Hello World程序 5.变量与赋值 6.用户交互 7.条件判断与缩进 8.循环控制 ...

  3. ios开发学习笔记(1)

    objective-c基础总结 第一二章 1.application:didiFinishLauchingWithOptions:程序启动后立即执行 2.启动界面代码格式:self.window = ...

  4. java学习笔记-基础篇

    Java基础篇 1—12 常识 13 this关键字 14参数传递 16 继承 17 访问权限 28—31异常 1—12 常识 1.文件夹以列表展示,显示扩展名,在地址栏显示全路径 2.javac编译 ...

  5. Java学习笔记——基础篇

    Tips1:eclipse中会经常用到System.out.println方法,可以先输入syso,然后eclipse就会自动联想出这个语句了!! 学习笔记: *包.权限控制 1.包(package) ...

  6. ios开发学习笔记001-C语言基础知识

    先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...

  7. iOS开发学习笔记

    1 常用的第三方工具 1.1 iPhone Simulator 测试程序需要模拟器iPhone Simulator 1.2 设计界面需要Interface Builder,Interface Buil ...

  8. ios开发学习笔记(这里一定有你想要的东西,全部免费)

    1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用). 其实在代码里还是可以设置的,那就是删除背景view [ ...

  9. Python学习笔记——基础篇【第四周】——迭代器&生成器、装饰器、递归、算法、正则表达式

    目录 1.迭代器&生成器 2.装饰器 a.基本装饰器 b.多参数装饰器 3.递归 4.算法基础:二分查找.二维数组转换 5.正则表达式 6.常用模块学习 #作业:计算器开发 a.实现加减成熟及 ...

随机推荐

  1. 【Install】我是如何安装Linux类系统的

    安装系统:ubuntu12.04 i386 DVD U盘启动12.04live系统   连线,设置连接 安装系统到硬盘   “语言支持”,更新   安装gnome经典界面 sudo apt-get i ...

  2. 「ruby/MiniMagick」用MiniMagick处理图片

    包的选择和配置 想用RMagick,但据说内存泄露的问题比较厉害,作为替代品MiniMagick不存在内存泄露的问题.而二者都是使用ImageMagick的,所以需要下载并安装ImageMagick. ...

  3. opencv之深拷贝及浅拷贝,IplImage装换为Mat

    一.(1)  浅拷贝: Mat B; B = image  // 第一种方式 Mat C(image); // 第二种方式 这两种方式称为浅copy,是由于它们有不同的矩阵头,但是它们共享内存空间,即 ...

  4. vsftpd基本配置(原)

    前提:iptables关闭或放行,selinux关闭或放行. 目标:创建虚拟ftpuser到指定的www.ftpuser.com目录,且只能在本目录下. 创建帐号 useradd -d /var/ww ...

  5. Python 进阶(五)定制类

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAugAAAF/CAIAAACUs6uhAAAgAElEQVR4nOzdZXubx7ov8PPV9tlrt0 ...

  6. XP+devOps开发模式与scrum敏捷开发对比,docker虚拟化

    XP+devOps开发模式与scrum敏捷开发对比,docker虚拟化 我们现在用的就是典型的XP+devOps模式,已经放弃scrum了 现在还很多公司弄docker虚拟化docker非常复杂,当然 ...

  7. mysql主从同步及清除信息

    主:reset master; 从:reset slave all; mysql主从配置: 1.MySQL主配置文件增加如下:default-storage-engine = innodbinnodb ...

  8. memcached启动参数

    memcached启动参数描述: -d :启动一个守护进程, -m:分配给Memcache使用的内存数量,单位是MB,默认是64MB, -u :运行Memcache的用户 -l :监听的服务器IP地址 ...

  9. jquery easyui常见问题:

    1.jquery easyui1.4.2 demo在ie10 上加载json的时候没有效果 从官网上下载了jquery easyui1.4.2 里面有个demo文件夹,但是发现底下的demo在IE.3 ...

  10. 事务的隔离级别及mysql对应操作

    /* 本次高并发解决之道 1,更改事务隔离级别为 read uncommitted读未提交 2,查询前设定延迟,延迟时间为随机 50-500 微秒 3,修改数据前将 超范围作为 限定修改条件 事务是作 ...