`
DevDiv.net
  • 浏览: 23385 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Hello,iPhone ! Hello world ! --iPhone 开发入门工程代码全解析

阅读更多
作者:Whhema
原贴地址:http://www.devdiv.net/home/space-6680-do-blog-id-262.html


今天偶来说说iphone的helloworld。

首先从官网上下载源码包,解压后结构如下:
.
│  Background.png
│  Default.png
│  HelloWorld.xib
│  HelloWorld_Prefix.pch
│  Icon.png
│  Info.plist
│  main.m
│  MainWindow.xib
│  ReadMe.txt
│ 
├─Classes
│      HelloWorldAppDelegate.h
│      HelloWorldAppDelegate.m
│      MyViewController.h
│      MyViewController.m
│     
└─HelloWorld.xcodeproj
        project.pbxproj

猛一看,真是非常的复杂,慢慢来,下面我来解释一下。
首先看最外层,包含了2个目录和一堆闲散文件。
Classes目录顾名思义,存放了项目的各个类,是需要开发者进行改动的。这里相当于symbian工程的inc和src目录。
HelloWorld.xcodeproj:看上去是个目录,其实在mac上,这个是XCode的项目文件,存放了在XCode中,项目的组成和build等信息。如果在XCode中打开这个工程,还会再生成2个文件,一般来说我们不用理会。
闲散文件:
1,几个png:用于程序的背景和图标等。
2,pch:预编译头文件,win32里经常会碰到,这里也有,包含了常用的头文件。
3,plist:包含了项目自身的特性,比如说项目名称啊,默认加载的nib file啊等等等等。相当于symbian中的mmp文件。
4,两个xib:这就是传说中的资源文件。和现在流行的GUI程序一样,iphone中也提供资源文件,用于简化编码过程,提高开发效率。
5,main.m:为什么这里单放了一个源文件呢,其实这个main.m是完全不用动的,大家马上就会看到这里面到底有什么。

---
开始进入source:
首先就是iphone程序的入口,在main.m中。
int main(int argc, char *argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}
这是大家都熟悉的main函数,里面马上创建一个NSAutoreleasePool对象,用于iphone高级架构的内存管理,然后全权委托UIApplicationMain这个函数来处理整个过程。
UIApplicationMain中封装了具体的做法,在适当的时候,会调用适当的方法,形成一个事件驱动的过程。
和UIApplicationMain最为紧密的,就是UIApplicationDelegate,UIApplicationDelegate提供了对app生命周期关键时刻的处理。
在这里,极为简单地,在iphone OS准备好运行这个app后,会发送消息给UIApplicationDelegate的applicationDidFinishLaunching方法,表示程序开始run,我们的具体实现当然是初始化一切啦。

上代码:

- (void)applicationDidFinishLaunching:(UIApplication *)application {
   
    // Set up the view controller
    MyViewController *aViewController = [[MyViewController alloc] initWithNibName:@"HelloWorld" bundle:[NSBundle mainBundle]];
    self.myViewController = aViewController;
    [aViewController release];
   
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque];
   
    // Add the view controller's view as a subview of the window
    UIView *controllersView = [myViewController view];
    [window addSubview:controllersView];
    [window makeKeyAndVisible];
}

一开始,我们建立起view controller,这里是读取一个名叫@"HelloWorld",并且处于mainBundle中的nib file。
之后设置一下状态栏(可有可无的),接下来,给window加一个UIView,这个UIView在controller中可以取到。最后让这个window "makeKeyAndVisible",显示窗口,并接受用户的输入。

最关键的已经说完,接下来一起看看view controller的细节,由于是helloworld,我就不把功能当成重点了,大家有可以去查查sdk。
先看看controller的声明的一部分,注意这只是一部分:

@interface MyViewController : UIViewController <UITextFieldDelegate> {
   
    IBOutlet UITextField *textField;
    IBOutlet UILabel *label;
    NSString *string;
}

这里我们的controller继承自iphone规定的controller的基类——UIViewController ,并实现了UITextFieldDelegate这个Delegate(相当于c++的纯虚函数;java中的接口)。UITextFieldDelegate只是用来实现输入框的增强型功能的,可有可无。
下面有3个成员变量,textField是系统输入框控件,label是系统label控件,string是文字。注意前两个成员的声明之前,出现了IBOutlet,这是用来通知interface builder的,用于把代码中的实例和nib file中的定义关联起来。

在MyViewController.m中,override了几个来自于基类的方法,有viewDidLoad和touchesBegan。
viewDidLoad来自于UIViewController,是一个回调。 touchesBegan来自于UIResponder,当触摸开始时(手指头向下按的时刻),由系统回调回来。

ok,代码部分已经全部说完,因为是helloworld,回调并不太多也并不太全,稍稍有些不严谨,不过这不影响我们学习。

---
其他的一些重要文件:
1,HelloWorld.xib:可以直接打开,这是个xml。数据量虽然不小,但我们根本不需要直接改。interface builder就是用来修改这个文件的。文件内记录了位置、引用、字符串等等信息。
2,Info.plist:这也是个xml,记录了app的重要特性。这里基本就要自己手动改了,在plist节点中,仅有一个dict子节点。dict节点中定义了若干个key,随便说几个:CFBundleDevelopmentRegion(开发者所在地区),CFBundleDisplayName,CFBundleExecutable,NSMainNibFile等。
但说一下NSMainNibFile,它定义了入口的nib file,这个工程定义的是MainWindow.xib,提供了window。

---
最后的话:
如果大家看到这里还没晕,那么说明你们是牛,这点东西为难不了你们~~
如果大家觉得很多东西难以理解,那么,找个机会,在iphone的模拟器上跑一圈吧~~

祝大家成功。

分享到:
评论

相关推荐

    iphone 开发入门例子 helloworld

    在Xcode中创建新项目时,选择"Single View App"模板,填写项目名称(例如:helloworld)和组织标识符,选择Swift作为编程语言。 三、ViewController 在iOS应用中,`UIViewController`是屏幕内容的基本控制器。在...

    Hello_World.zip_Hello world.a_iphone hello wor_world

    标题中的"Hello_World.zip_Hello world.a_iphone hello wor_world"揭示了这是一个关于iOS开发的初学者项目,其中包含了“Hello, World!”程序的基本元素。这个项目可能用于教授如何在iPhone平台上创建并运行简单的...

    UI第一章:无限互联iOS开发教程课件-- iPhone开发入门

    ### UI第一章:无限互联iOS开发教程课件 -- iPhone开发入门 #### iOS系统概述与架构 - **iOS系统**:作为苹果公司专为iPhone、iPod touch及iPad设计的操作系统,iOS自诞生以来就以其简洁易用的特点受到全球用户的...

    iphone Objective-C版hello world

    本示例“iphone Objective-C版hello world”旨在引导初学者入门Objective-C和iPhone应用程序开发。我们将深入探讨如何创建这个简单的“Hello, World”应用,以及涉及到的相关知识点。 1. **Objective-C基础知识**:...

    Cocos2d-iphone之HelloWorld

    Cocos2d-iphone之HelloWorld

    ios(iPhone)应用程序开发入门视频教程:第1讲helloworld概述

    在本节“ios(iPhone)应用程序开发入门视频教程:第1讲HelloWorld概述”中,我们将探讨iOS应用开发的基础知识,特别关注初学者如何通过HelloWorld项目开启编程之旅。这节课是整个“iOS(iPhone)应用程序开发入门视频...

    iPhone的第一个程序HelloWorld开发图解

    在iOS开发领域,"Hello, World!"程序是一个经典的起点,对于初学者来说,它是了解编程...文件"iPhone的第一个程序HelloWorld开发图解-jason(20100817).doc"可能会提供更详细的步骤和图示,帮助你更好地理解这一过程。

    How to Create hello world iphone application

    2. **命名项目**:给你的项目取一个有意义的名字,例如命名为“HelloWorld”。选择合适的保存位置并点击“Save”。 #### 设计界面 1. **打开Interface Builder**:双击项目目录中的“MainWindow.xib”文件以启动...

    ios iphone app 源代码,HelloWorld样例

    这个"ios iphone app 源代码,HelloWorld样例"是一个非常适合初学者的资源,它能帮助你理解iOS应用的基础架构和基本编程概念。 在iOS开发中,我们主要使用Swift语言,这是一种由Apple推出的强大且易学的编程语言。...

    iphone HelloWorld 例子

    选择"Application"下的"Single View App"模板,然后为项目填写必要的信息,如产品名(HelloWorld)、组织名和组织标识符。确保选择了正确的语言(Swift或Objective-C)和设备(iPhone)。点击"Next",选择保存项目的...

    iPhone开发【一】从HelloWorld开始

    在这个关于iPhone开发的系列教程的第一部分,我们将深入探讨如何创建你的第一个iOS应用,从"HelloWorld"开始。 首先,你需要安装Xcode,这是Apple官方提供的集成开发环境(IDE),用于开发iOS和macOS应用程序。...

    从零开始iOS8编程【HelloWorld】配套代码

    这个名为“从零开始iOS8编程【HelloWorld】配套代码”的资源,显然是为了帮助初学者了解如何在iOS8环境下构建并运行第一个简单的应用程序。这里我们将深入探讨相关知识点。 首先,iOS8是苹果公司推出的移动操作系统...

    How To Create HelloWorld For iPhone

    3. 填写产品名称(如 "HelloWorld"),组织标识符,以及选择语言(Swift或Objective-C)。 4. 选择设备目标,通常选择 "iPhone",然后点击 "Next",选择保存位置并创建项目。 编写代码: 1. 在 "ViewController....

    Cocos2d-iphone 开发教程

    - HelloWorld是一个典型的入门示例,用于演示如何使用Cocos2d-iPhone创建一个简单的游戏场景。 - 它通常包含一个主类,继承自CCLayer类,负责管理游戏逻辑和绘制。 - 在HelloWorld示例中,您将学习如何添加精灵、...

    iPhone开发【二】重写HelloWorld (不使用XIB)

    本篇文章将深入讲解如何在不使用XIB(XML Interface Builder)的情况下,重写一个基本的HelloWorld应用。XIB通常用于创建用户界面,但在某些情况下,我们可能希望直接在代码中构建UI,以便更好地理解其工作原理。 ...

    iphone开发入门指导

    本篇文章将基于“iPhone开发入门指导”的标题以及描述中提到的“一步步教你如何编写官方版的HelloWorld程序”,详细讲解iPhone应用程序开发的基础知识。 #### 二、基础知识 1. **开发环境搭建** - **Xcode**: ...

    iPhone开发入门[归纳].pdf

    iPhone开发入门是一个对初学者非常友好的主题,涵盖了从创建项目到编写代码,构建和运行应用,以及优化性能的关键步骤。以下是对这些知识点的详细解释: 1. **创建iPhone项目**: - 使用Xcode,Apple的官方集成...

    iphone sdk3 开发指南 源代码

    这份"iPhone SDK3 开发指南 源代码"正是为了帮助初学者快速入门,通过实际的源代码学习和理解iOS开发的核心概念。 首先,我们要明确SDK3的主要更新内容。SDK3引入了Objective-C 2.0的新特性,如垃圾回收(Garbage ...

Global site tag (gtag.js) - Google Analytics