iphone开发之初识iphone应用程序

如何将应用程序iPhone 传输到Mac电脑 本文介绍了将 iPhone 应用程序同步到 Mac 计算机的几种方法,重点推荐使用 Coolmuster iOS Assistant 软件进行无缝传输。文章提供了详细的操作步骤,包括安装软件、连接设备、选择应用程序并导出。此外,还简要介绍了使用 iTunes/Finder 和 iCloud 进行同步的其他选项。最后,文章以常见问题解答和结语结束,确保用户能够顺利完成同步过程。 阅读详情

我们在学习一门开发语言时往往都是以Helloworld开始的,所以我就以Helloworld来开始我的iphone开发之旅并学习iphone应用程序的架构及生命周期。

打开xcode新建一个基于UIView的项目。项目名为Helloworld,打开ViewController.xib文件,我们需要一个Labe控件,按住鼠标突入一个Label,双击该Label,输入Helloworld。好了就这么简单,这时可以编译运行了,如果不出意外的话,将看到下面的结果。




很简单吧!这不是我们的目的,如果要开发出一款优秀的iphone应用,我们需要了解iphone应用程序架构和生命周期。

所有的iPhone应用程序都是基于UIKit框架构建而成的,因此,它们在本质上具有相同的核心架构。UIKit负责提供运行应用程序和协调用户输入及屏幕显示所需要的关键对象。应用程序之间不同的地方在于如何配置缺省对象,以及如何通过定制对象来添加用户界面和行为。

从应用程序启动到退出的过程中,UIKit框架负责管理大部分关键的基础设施。iPhone应用程序不断地从系统接收事件,而且必须响应那些事件。接收事件是UIApplication对象的工作,但是,响应事件则需要您的定制代码来处理。为了理解事件响应需要在哪里进行,我们有必要对iPhone应用程序的整个生命周期和事件周期有一些理解。本文的下面部分将描述这些周期,同时还对iPhone应用程序开发过程中使用的一些关键设计模式进行总结。

应用程序的生命周期

应用程序的生命周期是由发生在程序启动到终止期间的一序列事件构成的。在iPhone OS中,用户可以通过轻点Home屏幕上的图标来启动应用程序。在轻点图标之后的不久,系统就会显示一个过渡图形,然后调用相应的main函数来启动应用程序。从这个点之后,大量的初始化工作就会交给UIKit,由它装载应用程序的用户界面和准备事件循环。在事件循环过程中,UIKit会将事件分发给您的定制对象及响应应用程序发出的命令。当用户进行退出应用程序的操作时,UIKit会通知应用程序,并开始应用程序的终止过程。

图1-1显示了一个简化了的iPhone应用程序生命周期。这个框图展示了发生在应用程序启动到退出过程中的事件序列。在应用程序初始化和终止的时候,UIKit会向应用程序委托对象发送特定的消息,使其知道正在发生的事件。在事件循环中,UIKit将事件派发给应用程序的定制事件处理器。有关初始化和终止事件的如何处理的信息,将在随后的“初始化和终止”部分进行讨论;事件处理的过程则在“事件处理周期”部分介绍,在后面的章节也还有更为详细的讨论。

图1-1  应用程序的生命周期


注:以上内容来自苹果官方说明文档

通过上述说明我们对iphone应用程序的组成及生命周期有了一个大致的了解。下面我们来扩展一下我们的Helloworld。

拖入两个个Button控件,分别双击鼠标修改为Show和Clear。

打开ViewController.h文件,修改如下:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (nonatomic, retain) IBOutlet UITextView *text;

- (IBAction)showText:(id)sender;
- (IBAction)clearText:(id)sender;
@end

再打开ViewController.m文件修改如下:

//
//  ViewController.m
//  HelloWorld
//
//  Created by YQ-010 on 4/12/12.
//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//

#import "ViewController.h"

@implementation ViewController

@synthesize text;
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Release any cached data, images, etc that aren't in use.
}

- (IBAction)showText:(id)sender
{
    NSString *hello = [[NSString alloc] initWithFormat:@"Hello,world!"];
    self.text.text = hello;
    [hello release];
}
- (IBAction)clearText:(id)sender
{
    NSString *nullText = [[NSString alloc] initWithFormat:@""];
    self.text.text = nullText;
    [nullText release];
}
#pragma mark - View lifecycle

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
}

- (void)viewDidUnload
{
    self.text = nil;
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
}

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
}

- (void)viewWillDisappear:(BOOL)animated
{
	[super viewWillDisappear:animated];
}

- (void)viewDidDisappear:(BOOL)animated
{
	[super viewDidDisappear:animated];
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
    } else {
        return YES;
    }
}

- (void) dealloc
{
    [text release];
    [super dealloc];
}
@end

我们为两个按钮分别说明了一个响应,当我们按下按钮时,就会执行我们设置的showText和clearText函数。不要忘了将按钮和我们的File's Owner建立连接。编译运行:

     


怎么样有了交互之后是不是不一样了,这时我们也许会对,按钮的事件处理有点疑惑,不用担心,我们下次就会学到。

就写这么多,有什么问题请留言,大家一起学习交流!

说明:转载请注明出处!

如何删除 iPhone 上的应用程序? [完整指南] 本文提供了一份完整的指南,教您如何从iPhone上删除应用程序。包括使用Coolmuster iOS Assistant软件、通过iPhone设置、3D Touch功能、长按主屏幕图标、Coolmuster iOS Eraser彻底删除应用数据,以及使用旧版iTunes卸载应用的六种方法。这些方法帮助用户有效管理存储空间,清理不再需要的应用,同时注意在删除前备份重要数据。 阅读详情

相关推荐

IOS 入门开发之构建第一个应用程序(一)

IOS 入门开发之创建第一个应用程序雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archives/570具体创建项目的方法与开发语言相关知识请阅读我之前的文章【Objective-C 语法锦集】 本系列文章将着重讨论iPhone与iPad 应用程序入门的开发。创建一个iPhone项目名称为Hello

雨松MOMO的程序世界专栏 9256

【Python成长之路】如何用python开发自己的iphone应用程序,并添加至siri指令

哈喽大家好,我是鹏哥。 今天想记录的学习主题是——基于pythonista3 app开发自己的iphone应用程序。 ~~~上课铃~~~ (由于今天被小伙伴推荐了这首歌,因此就应他的要求,作为此文的背景音乐吧!) あいの唄wacci-感情百景(期間生産限定盤) 1 写在前面 之前看到翔哥发过一篇如何将安卓手机打造成Python开发环境,心生羡慕。可是由于不舍得那么多...

yuzipeng的专栏 5390

用 Eclipse 开发 iPhone Web 应用程序

Adam Houghton (adam@adamhoughton.com), 高级软件开发人员, SAS Institute, Inc.2008 年 3 月 05 日学习如何使用 Eclipse、Aptana 的 iPhone Development 插件及 iUi 框架创建 iPhone Web 站点。了解如何开发 iPhone 的 Javadoc 查看器,用户界面设计的技巧,以及

phphot 2831

如何将 iPhone 应用程序传输到新 iPhone

在更换到新 iPhone 后,您可能会面临如何将数据传输到新 iPhone 的问题,尤其是如何在 iPhone 之间传输应用程序,对吧?当然,您可以再次从 App Store 下载这些应用程序到您的 iPhone 上,但这显然会浪费时间。许多 iPhone 用户希望有一种超快速的方法,帮助他们将应用程序完整地传输到新 iPhone 上。幸运的是,有一些出色的数据传输工具,使得在 iPhone 之间传输应用程序变得前所未有的简单。

Digitally的博客 2950

快速搭建iphone应用程序开发环境

这几天在windows xp上安装mac os x和iphone sdk、搭建iphone应用程序开发环境,在这里把搭建环境的过程和各位朋友分享下。

小冯的专栏 1101

开发iPhone应用程序(一)

<br />转载请注明出处:http://blog.csdn.net/zhyzh2046/<br />从较高的层面看,开发iPhone应用的过程与开发Mac OS X应用相似。都使用相同的工具和很多相同的基本类库。撇开相似性,他们之间还是有很大不同的。iPhone不是桌面计算机;它有不同的用途并且需要非常不同的设计方法。这种方法要利用iPhone OS的优势和领先的特色,它们可能在移动领域不相关或不切实际的。iPhone和iPod touch设备上更小尺寸的屏幕,也意味着应用的用户界面必须有序组织并且要一直

sjchen1203的专栏 708

「Java开发指南」如何用MyEclipse为iPhone搭建Spring应用程序

本教程将介绍如何用MyEclipse为iPhone搭建Spring应用程序,欢迎下载最新版IDE体验!

需要界面开发、IDE工具研发中文教程资料的小伙伴,记得私信我~ 1091

iPhone核心应用程序架构

      本文主要介绍iPhone应用程序的基本架构和原理。      iPhone应用程序从启动到退出的过程中,UIkit框架负责大部分关键的管理。iPhone应用不断的从系统那里接收事件,而且必须响应那些事件。接收事件是UIApplication对象的工作,但是响应事件则是程序员来负责定制。我们先来了解下整个iPhone应用程序的生命周期和事件周期。     在点击应用程序图标后,系统先会显示一个过渡图形,然后调用相关的main函数来启动程序。这个点之后,大量的初始化工作就交给了UIkit,由它装载应

NewJerryj的专栏 2035

ipad iphone开发_如何修复iPhone或iPad上崩溃的应用程序

ipad iphone开发N.Z.Photography/ShutterstockNZ摄影/快门Apps can crash or freeze on iPhones and iPads, just as they can on any other platform. Apple’s iOS operating system disguises app crashes by closing the...

cum88284的博客 5316

iPhone应用程序开发基础知识先决条件

在开始iPhone应用程序开发之前,必须至少对下面这些Cocoa概念有基本的理解: 有关XcodeInterface Builder的基本信息及其在应用程序开发中的作用。 如何定义新的 Objective-C类。 如何管理内存包括如何创建和释放Objective-C对象。 委托对象在管理应用程序行为中的作用。 目标-动作范式在用户界面管理中的作...

Bolt 的专栏 264

您最喜欢的iPhone应用程序可以在iPad上使用吗?

ALife / ShutterstockALife / Shutterstock Everyone has their favorite apps. Although many of them will work on iPhones and iPads, they don’t all take advantage of the iPad’s larger screen. We’re going ...

culunyi0802的博客 1550

iOS 生态系统发展之路——iPhone 与第三方应用程序

再过数天,本年度的 WWDC 即将召开。此次大会举世瞩目,今年门票瞬间售罄。苹果极有可能发布 iOS 7、OS X 10.9 及一系列硬件产品。为了表示对创新的衷心感谢,就让我们一起重温 iOS 生态系统发展之路,最后透析未来发展。首先,就以“iPhone 与第三方应用程序”作为开端,感谢各位辛勤的开发者。     2007 年 1 月 MacWorld 大会,划时代的 iPhone 正式发布,

u014459556的专栏 1042

如何将应用程序Iphone真机上调试

caolei_kunming的专栏 4230

iPhone开发进阶(2) — iPhone应用程序/项目的构成

博主:易飞扬原文链接 : http://www.yifeiyang.net/iphone-developer-advanced-2-iphone-applications-projects-constitute-a/转载请保留上面文字。iPhone应用程序目录构成工程项目的构成项目文件构成及入口iPhone开发进阶(2) --- iPhone应用程序/项目的构成开发iP

itudou_2010的专栏 1415

ipad iphone开发_如何在iPhone或iPad上强制退出应用程序

ipad iphone开发Khamosh Pathak Khamosh Pathak Sometimes, an app gets stuck on a screen or stops responding. If you force quit the app on your iPhone or iPad, it “unsticks” everything. We’ll show you how!...

1022

iOS开发-应用程序iPhone上运行与测试

iPhone上运行app,解析错误报告

davidson1471的博客 492

调试iphone应用内页面_如何从iPhone主屏幕上删除应用程序和页面

调试iphone应用内页面Khamosh Pathak Khamosh Pathak For years, Android owners have been able to hide apps from their home screens. Now, as long as you’re running iOS 14 or newer, iPhone owners can remove and h...

culiuman3228的博客 5009

iphone释放空间_如何通过卸载未使用的应用程序来释放iPhone或iPad上的空间

iphone释放空间Apps can consume a lot of space on an iPhone or iPad. In iOS 11, a new feature allows you to removean app from your device without removing the app’s data. In other words, you can remove th...

cum44153的博客 3018
上一篇: 新浪微博开发之发表微博功能的实现
下一篇: iphone开发之事件处理详解
Cloay
博客等级 码龄16年 114粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值