ios app开发学习流程(入门到精通)

article/2025/10/2 9:22:00

一、xcode编译并运行app后,iphone模拟器已安装的app所在目录:

# 1. /Users/alpha/Library/Application Support/iPhone Simulator/5.1/Applications

# 2. 删除此目录下的app目录,即可清空模拟器里安装过的app

# 3. sqlite数据库文件一般在上面目录下的某个app目录下的Documents目录


二、xcode编译出来的app目录:

/Users/alpha/Library/Developer/Xcode/DerivedData



{ 熟悉UITableView使用 =>自定义UITableViewCell =>coredata数据库框架(sqlite本地存储) =>网络数据传输框架熟悉()}


1. 熟悉cocoa touch框架(MVC),弄清楚框架中哪个是作为model,哪个作为View,哪个作为Controller

appdelegate:是cocoa框架中,对应用程序生命周期的管理(app程序的启动和关闭,清理内存等操作),启动 viewController

viewController:即mvc中的控制器(控制view的显示,和实现ui控件的事件循环,接受button的按钮事件,并调用相应的处理函数【也即业务逻辑、数据库读取数据等】)

xib:mvc中的view(设计ui的资源文件)Xcode4以前的版本中使用xib文件来设计ui,当然xcode4以上的版本也可以使用xib,但是推荐用storyboard来设计界面(只有ios5以上支持)

storyboade: iOS5以上的版本支持使用此概念来设计ui(前提需要使用低耦合的mvc模式来设计)

 

(下面两个概念重要)

插座变量:(IBOutlet修饰的变量):此变量和 UI控件(如:UITextField)关联后,相当于是UI控件的操作指针,获取控件的值等操作。

    @property( nonatomic, retain) IBOutlet UITextField *textField;

   1. @property关键词告诉编译器把textField插座变量公开为属性。

   2. nonatomic关键词指出不需要确保属性以thread安全的方式使用。

   3.  .m文件中,使用synthesize关键词告诉编译器为插座变量指定的getter和setter。

控件触发函数:(IBAction修饰的事件):用于关联 按钮 到 本函数,当UIButton的某个事件出发时,调用此函数,可以完成数据库操作等业务逻辑。

 

 

2.弄清楚了上述MVC结构,开始熟悉objective-c的语法,就可以上手开发app了。

 

3.xib设计ui的模式:(iOS5上已经过时)

 a.创建一个工程

 b.拖动viewController对象到IB设计器中

 c.新建一个子类继承自UIViewController(xcode中自动生成.h .m两个文件)此控制器文件用于管理刚刚设计的view

 d.viewController.h中定义插座变量和按钮的点击触发函数

 e。ctrl按住,点击拖动想要关联的UI控件 到 File's owner, 会弹出刚刚定义的插座变量按钮的点击触发函数



4.storyboard设计ui的开发模式:(iOS5以上版本才有此特性,目前开发都用这种)

a. 绘制并布局ui控件(这里有个插座变量的概念,用IBOutlet修饰,此变量可以通过拖线的方式和ui控件建立关系,然后controller代码中使用此插座变量就可以操作ui控件)

如:controller.h 中定义: @property (nonatomic,retain) IBOutlet UITextField *textField; 然后界面上绘制的UITextField控件和 textField变量建立关联,代码中操作textField变量即可操控UITextField控件了。

b. 当然这里红色的插座变量textField我是在controller.h代码中手写的,也可以打开storyboard后,按option+command+return打开controll.h窗口,使用拖动UITextField控件到controller.h中来自动生成上面的textField插座变量代码//同理,button生成IBAction的点击事件函数也可以用拖动控件到controller.h中的方式来生成,并自动在controller.m中生成事件函数的原型代码。



5.接下来熟悉了上面的概念,其实ios开发设计,都是主要针对tableView的设计各种viewController之间跳转(segue)

如何获取storyboard中tableView的对象我已经写了相应的文章。


下面的内容转自互联网:

Cocoa的MVC架构分析

Cocoa MVC Objective-C MacRuby OS

Cocoa是Mac OS和iPhone OS上的开发框架,使用Objective-C做为开发语言。当然,在代码中也可以嵌入C和C++的语句。初识Objective-C时会觉得它的语法很奇怪,但本质上和其他面向对象语言都差不多。具体语法大家可以参考相关文档。

 

在Cocoa框架中:

所有的控件、窗口等都继承自 UIView,对应MVC中的 V。UIView及其子类主要负责UI的实现,而UIView所产生的事件都可以采用委托的方式交给UIViewController实现。对于不同的UIView,都有相应的UIViewController 对应MVC中的C。比如在iPhone OS上常用的UITableView,它所对应的Controller就是UITableViewController。至于MVC中的M,那需要根据用户自己的需求来实现了。

 

下面看一下一个自定义UIView的架构是怎么样的。这之前要认识一下Objective-C中的几个重要的关键字。

@interface 定义一个类,这个很容易和Java中的interface混淆。

@protocol 定义一个协议,我跟喜欢把它理解成一个接口,相当于Java中的interface。

Objective-C只支持单继承,但可以实现多个协议(接口),语法如下:

 

Objective-c代码 复制代码  收藏代码
  1. @interface Child : Parent <Protocol1,Protocol2>   
  2.   
  3. {   
  4.   
  5. //成员变量定义   
  6.   
  7. }   
  8.   
  9. //成员方法,类方法,属性定义   
  10.   
  11. @end  
 

有了以上的知识后,我们就可以来定义自己的UIView了。

首先是定义一个UIView的子类

 

Objective-c代码  

然后定义一个Protocol,按照Cocoa的习惯,一般它以delegate结尾,熟悉C#的同学应该知道它的意义。其实不论是接口,委托,还是回调函数,本质上都做了一件事情。就是定义了一个操作契约,然后由用户自己来实现它的具体内容。

 

Objective-c代码 复制代码  收藏代码

 

完成以上两步之后就需要设计自己的UIViewController了。一般简单的做法,可以让这个Controller来实现上面定义的MyUIViewDelegate。在Cocoa框架中,很多控件和它的Controller都是采用的这种方式。

 

Java代码 复制代码  收藏代码
: UIViewController <MyUIViewDelegate>
{
//成员变量
}//成员方法,类方法,属性@end

 

定义都完成了,到这里其实还看不出这三者是怎么联系起来的。那接下来就要看看,MyUIView和MyUIViewController的具体实现了。

 

首先是MyUIView的实现代码,假设在MyUIView在发生某个事件后会调用doSometing方法(按钮事件)

 

Objective-c代码 复制代码  收藏代码
  1. - (void)doSomething   
  2. {   
  3.     if( delegate != nil )  //这里的delegate就是UIView定义时候的一个委托对象   
  4.     {   
  5.         [delegate func1]; //[]表示对一个对象发消息,如果在Java中会写成delegate.func1()   
  6.     }   
  7. }  

 

上面的代码中 nil 相当于 Java中的 null,这里的意思就很明显了,如果delegate委托对象不为空,则调用相应的方法,但是这个delegate委托对象的方法在哪里实现呢。可以看一下MyUIViewController的定义,它实现了MyUIViewDelegate。所以这个方法当然是由它来实现。代码如下

 

Objective-c代码 复制代码  收藏代码
  1. - (id)init   
  2. {   
  3.     MyUIView *myView = [[MyUIView alloc] init]; //对MyUIView进行初始化   
  4.     myView.delegate = self; //将MyUIViewController自己的实例作为委托对象   
  5.     self.view = myView;    
  6. }   
  7.   
  8. - (void)func1   
  9. {   
  10.     //具体实现,可以加入Model相关的代码   ,界面上的button点击后,调用此函数来实现业务逻辑
  11. }  

 

这么一来整个,整个代码的线路就明白了。

1.MyUIViewController初始化(viewController控制view的展示,和定义ui点击事件的处理函数-(IBAction)onbuttonClick(id):sender;)

2.MyUIViewController初始化时初始化MyUIView,并且将自己作为委托对象赋值给MyUIView

3.MyUIView发生事件,调用(回调)委托对象的方法,其实就是调用MyUIViewController的方法。(界面点击事件,增加model相关代码)

 


 


http://chatgpt.dhexx.cn/article/6i8RxkKY.shtml

相关文章

iOS开发系列课程(01) --- iOS编程入门

iOS概述 什么是iOS iOS是苹果公司为它的移动设备&#xff08;iPhone、iPad、iWatch等&#xff09;开发的移动操作系统。 iOS发展史 2007年苹果发布iPhone Runs OS X2008年更名iPhone OS2010年更名iOS2012年WWCD 2012上发布iOS 62013年WWCD 2013上发布iOS 72014年WWCD 2014上…

iOS苹果开发者账号申请教程

只有苹果开发者账号才能上架App Store&#xff0c;苹果开发者需要年费&#xff0c;是苹果公司收的&#xff01; 开发者账号类型功能介绍 下面是个人苹果开发者申请步骤流程&#xff1a; 分五个步骤进行 1、注册苹果账号apple id 2、开启双重认证 3、下载Apple Developer应…

零基础如何学习 iOS 开发?

作为一名混迹iOS开发圈近4年的码农&#xff0c;资历不深不浅&#xff0c;看到这个问题还是忍不住想回答一下。 如果你打算学习iOS开发&#xff0c;那么在开始学之前&#xff0c;你要做好以下4个方面的准备。 ————————————————————— 1 、信念。 很大程…

【原创】iOS开发入门教程

2019独角兽企业重金招聘Python工程师标准>>> 程序发轻狂&#xff0c;代码阑珊&#xff0c;苹果开发安卓狂&#xff01;——写给狂热的编程爱好者们 ###写在前面的话 学习iOS应用程序开发已有一段时间&#xff0c;最近稍微闲下来了&#xff0c;正好也想记录一下前阶段…

iPhone 开发基础教程

Phone 开发基础教程之 在开始编写iPhone 软件之前&#xff0c;需要做一些准备工作。对于初学者&#xff0c;需要一台运行 Leopard(OS X 10.5.3或更高版本)的基于Intel的Macintosh计算机。2006年之后上市的任何Macintosh计算机(不管是笔记本还是台式机)应该都符合要求。 无需使用…

iOS(一):Swift纯代码模式iOS开发入门教程

Swift纯代码模式iOS开发入门教程 项目初始化&#xff08;修改为纯代码项目&#xff09;安装第三方库&#xff08;以SnapKit库为例&#xff09;桥接OC库&#xff08;QMUIKit&#xff09;封装视图并进行导航跳转示例&#xff1a;使用 TangramKit 第三方UI布局库应用国际化添加 R.…

ios开发入门

环境macos 12.5 xcode 12.0 objective c 一、找到启动后加载的ViewController 选择objective c storyboard 创建一个ios app后&#xff0c;直接点击run&#xff0c;xcode会启动手机模拟器&#xff0c;先显示的是lanuchScreen&#xff0c;launchScreen结束后触发applicatio…

iOS开发零基础教程之真机调试流程

本讲主要内容&#xff1a; 1、真机测试前准备工作 2、第一步创建App ID 3、第二步创建开发证书Development Certificate 4、第三步打开本地钥匙串创建CSR文件 5、第四步添加设备 6、第五步创建描述文件 7、第六步导出证书给其他人用 8、第七步在Xcode工程中配置Code Si…

iOS开发入门——基础篇一

文章目录 1. iOS应用生命周期1.1 应用程序的架构1.2 iOS应用的5种状态&#xff1a;1.2.1做一些操作对应的生命周期调用的顺序1.2.2全面的生命周期执行流程图 1.3 Main函数入口1.4 几个关键对象1.5 Main Run Loop 2. UI界面2.1 UIWindow2.2 UIViewController生命周期*2.2.1 View…

iOS 开发 入门:加入iOS Developer Program (iOS开发者申请教程)

我于2012年12月23日提交加入iOS开发者计划&#xff08;即iOS Developer Program,简称IDP&#xff09;的申请&#xff0c;至2012年12月28日申请成功&#xff0c;扣除星期天&#xff0c;一共仅用了5天时间&#xff0c;这超出了我的意料。在这里&#xff0c;我将我的申请过程记录下…

从零学IOS开发(一)

目录 一&#xff0c;开发环境二&#xff0c;新建项目三&#xff0c;项目文件结构四&#xff0c;基本组件五&#xff0c;APP基本雏形 一&#xff0c;开发环境 ​ IOS开发环境很简单&#xff0c;只需一台MAC和一个IDE(Xcode)&#xff0c;Xcode是apple官方的开发环境&#xff0c;…

新手必看,史上最全的iOS开发教程集锦,没有之一!

最近大火的iPhone XS Max和iPhone XS&#xff0c;不知道有没有同学已经下手了呢&#xff1f;一万三的价位确实让很多人望而却步啊。据说为了赢得中国的用户&#xff0c;专门出了双卡双待的&#xff0c;可想而知中国市场这块“肥肉”人人都想要。 近几年&#xff0c;无论苹果出…

IOS 初级开发入门教程(一)介绍篇

导读 目前移动端开发市场上引导开发者追求技多不压身&#xff0c;一个全栈开发者至少要懂后台服务器、数据库、Android、web、ios开发等。“一超多强”是指开发者先成为一门技术的专家然后掌握了解多门技术&#xff0c;这是一种好的发展趋势&#xff0c;另外&#xff0c;这种技…

iOS开发入门教程

摘要 iOS开发入门教程&#xff0c;从创建项目到运行项目&#xff0c;包括OC基础&#xff0c;调试&#xff0c;模拟器设置等相关知识。 程序发轻狂&#xff0c;代码阑珊&#xff0c;苹果开发安卓狂&#xff01;——写给狂热的编程爱好者们 写在前面的话 学习iOS应用程序开发已有…

IOS开发

第一章&#xff1a;iOS开发入门之Xcode的基本使用 文章目录 第一章&#xff1a;iOS开发入门之Xcode的基本使用前言一、Xcode是什么&#xff1f;二、基本使用步骤1.新建2.文件代码设置1⃣️.代码设置2⃣️把info里面的Application Scene Manifest删掉** 三、简单例子总结 前言 …

ios开发教程(一)开发环境搭建

一、系统安装 1. 如果你有苹果电脑&#xff0c;那么可以直接跳过这个阶段 2. 如果没有苹果电脑&#xff0c;那么可以使用VMWare虚拟机安装macos&#xff0c;安装教程见这篇文章 https://blog.csdn.net/dm569263708/article/details/130523282 二、安装xcode 1. 下载xcode&…

app开发流程:手机软件开发app的6个步骤

现在以手机app为代表的移动互联网已经超过传统的PC&#xff0c;成为企业营销创业赚钱不可忽视的重要渠道&#xff0c;手机软件开发app成为传统企业转型的关键。app开发具体需要哪些流程和周期呢&#xff1f;今天给大家分享一下app开发流程的6个步骤。 1、项目确定 在进行app开…

【2023最新】超详细图文保姆级教程:App开发新手入门(2)

上章节我们已经成功的创建了一个 App 项目&#xff0c;接下来我们讲述一下&#xff0c;如何导入项目、编辑代码和提交项目代码。 Let’s Go! 4. 项目导入 当用户创建一个新的应用时&#xff0c;YonStudio 开发工具会自动导入模板项目的默认代码&#xff0c;不需要手动进行代…

【史上最全App开发知识分享】如何从零开始成为app开发专家?

本文针对小白用户对App做一个简单的介绍&#xff0c;介绍了App都有哪些类型&#xff0c;不同的类型app开发需要哪些技术&#xff0c;用户可以根据自己的需求选择不同的App开发&#xff0c;若不懂技术&#xff0c;没有资金怎么开发app。 一 、App有哪些形式&#xff1f; App主要…

5+ App开发入门指南

原文地址: http://ask.dcloud.net.cn/article/89 HTML5 Plus应用概述 HTML5 Plus移动App&#xff0c;简称5App&#xff0c;是一种基于HTML、JS、CSS编写的运行于手机端的App&#xff0c;这种App可以通过扩展的JS API任意调用手机的原生能力&#xff0c;实现与原生App同样强大…