ios开发学习笔记(二)

    ios开发的学习教程,莫过于苹果官网上提供的资料了,在苹果官网上将ios入门的学习分为这么几个阶段:

    

由图中可以看的到,顺序是 开始-设置-教学-基础-开发-下阶。

     在开始中,苹果公司简单介绍了一下做苹果开发是多么一件享受和有意义的事情,然后给我们简单说明了一下总的学习规划和流程图,以及它的开发工具Xcode的基本情况。

    设置中,苹果公司手把手教您如何下载并安装Xcode开发工具,并且如何在ios开发者计划中注册成为苹果开发者,注意只有注册了的用户才可以在真机上运行自己的app并上传自己的app到app store中去,而注册每年的费用是99dollars,很贵的,所以刚开始如果没有特殊的情况,建议用模拟器调试。

     现在开始我们的第三部,教学这节中会介绍相关工具,基本的设计模式,以及应用开发的过程。按照教程,我们将构建一款简单的应用,它能够接受用户的文本输入,并把文字显示在屏幕上。我们也将学到如何在Mac模拟器中运行你的应用。教程里的简单步骤展示了优雅实用的概念,我们将会在今后的应用开发中不断运用到它们。

    现在开始正式开发我们的app。

    我们第一个ios app将包括三个T:

  • Tools:如何运用Xcode,如何管理工程
  • Technologies:如何生成一个app可以相应用户的输入行为
  • Techniques:在ios的开发下如何利用一些基本的设计方式

    新建工程,用single-view application创建新工程,让我们大致看一看xcode的主界面:


    新建工程完成后,运行程序,因为我们新建的是ios工程并且选的是ios simulator,所以会生成一个新的模拟器,模拟器样式如下图:



    此时,因为我们没有写任何代码,所以我们的app只有一个白色的底图,为什么有这个白色的底图呢,我们就需要学习这些对象是怎么组建起来并且怎么来启动这个app,现在,我们先退出ios simulator,来找出一个app是如何开始的。

    因为你的工程是建立在xcode的模板之上的,所以当你运行你的app的时候,很多基本的app的环境已经被自动设置,比如说,在工程中,Xcode会创建一些文件,其中一个就是应用程序对象,它会建立一个运行循环,这个运行循环会注册你的输入资源并且传递你的输入事件到你的app当中。这个当中大部分的工作是由UIApplicationMain函数来完成的,它的功能是由你自动导入到工程中的UIKit来实现的,这个方法包含在被自动命名为main.m 的文件中.

    main.m文件:

    main.m文件中就只包括一个函数,就是UIApplicationMain(),在自动释放池中进行调用,如下代码:

//
//  main.m
//  Test
//
//  Created by frand on 13-5-22.
//  Copyright (c) 2013年 frand. All rights reserved.
//

#import <UIKit/UIKit.h>

#import "AppDelegate.h"

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

    @autoreleasepool声明表示里边的函数支持内存自动回收系统,内存自动回收系统对你的app自动提供的对象终身管理功能,确保对象还有没有存在的必要。

    在调用UIApplicationMain的时候,生成了一个UIApplication类的对象,和一个app delegate对象,在此例中是TestAppDelegate,他来给你提供一个单一视图模板,app delegate主要的作用就是为你app的显示界面提供一个窗体。app delegate还可以在app显示在屏幕之前,显示一些app的配置信息。(delegation是一种设计模式,这种设计模式可以帮助一个对象对另一个对象进行操作或者两个之间合作进行)。

    在ios应用程序当中,一个窗体对象提供了一个容器,这个容器装载了所有的app 的可视的内容,这个窗体来帮助传递事件到app对象当中去,还帮助app对象做一些变化。但是这个窗体本身是不可见的。

调用UIApplication时也扫描了一个Info.plistfile,这个文件包括了一些键值对,比如app的名称和icon。

    property list 文件

    因为我们在创建新工程的时候复选框离选择了use storyboard,所以info.plist文件中也包括storyboard文件的文件名,这个文件将会在应用程序启动时被应用程序对象加载,一个storyboard文件包括对象的生成,转变的生成和连接的生成,由此来控制用户界面。

    在应用程序启动的时候会先加载info.plist文件,然后会加载storyboard文件,storyboard文件同时会初始化view controller类,view controller是管理内容的一个对象,当app开始的时候,初始状态的view controller是空的。

    可以看到除此之外,在此工程中有viewController.h和viewController.m两个文件,ViewController文件是管理单个view提供的界面内容的,还有子view和父view,view族谱的概念可以顾名思义,一个        viewController管理了一个view 族谱。

    注意:在设计模式中有一种叫做MVC(Model-View-Controller)的设计模式,以上提到的view就是其中的View,提到的Viewcontroller就是其中的Controller,还有Model表示的是数据。

    storyboard 文件

    

    在view中的层次关系,左边的Xcode outline view会自动显示出来,一般包括了以下几个项目:

  • 1,第一个响应的占位对象,用橙色小正方体表示。
  • 2, 一个名叫Exit的占位对象来切断联系。
  • 3,viewController对象,用橙色的圆里边嵌一个白色正方形表示。
  • 4,一个View,这个View被列在view controller的下方,当运行app时,这个就是刚看到的白色底图。

 

 


 

猜你喜欢

转载自frand-feng.iteye.com/blog/1873501