当前位置: 首页 > news >正文

开源 Objective-C IOS 应用开发(四)Xcode工程文件结构

 文章的目的为了记录使用Objective-C 进行IOS app 开发学习的经历。本职为嵌入式软件开发,公司安排开发app,临时学习,完成app的开发。开发流程和要点有些记忆模糊,赶紧记录,防止忘记。

 推荐链接:

开源 Arkts 鸿蒙应用 开发(一)工程文件分析-CSDN博客

开源 Arkts 鸿蒙应用 开发(二)封装库.har制作和应用-CSDN博客

开源 Arkts 鸿蒙应用 开发(三)Arkts的介绍-CSDN博客

开源 Arkts 鸿蒙应用 开发(四)布局和常用控件-CSDN博客

开源 Arkts 鸿蒙应用 开发(五)控件组成和复杂控件-CSDN博客

开源 Arkts 鸿蒙应用 开发(六)数据持久--文件和首选项存储-CSDN博客

开源 Arkts 鸿蒙应用 开发(七)数据持久--sqlite关系数据库-CSDN博客

开源 Arkts 鸿蒙应用 开发(八)多媒体--相册和相机-CSDN博客

开源 Arkts 鸿蒙应用 开发(九)通讯--tcp客户端-CSDN博客

开源 Arkts 鸿蒙应用 开发(十)通讯--Http-CSDN博客

开源 Arkts 鸿蒙应用 开发(十一)证书和包名修改-CSDN博客

开源 Arkts 鸿蒙应用 开发(十二)传感器的使用-CSDN博客

开源 Arkts 鸿蒙应用 开发(十三)音频--MP3播放_arkts avplayer播放音频 mp3-CSDN博客

开源 Arkts 鸿蒙应用 开发(十四)线程--任务池(taskpool)-CSDN博客

开源 Arkts 鸿蒙应用 开发(十五)自定义绘图控件--仪表盘-CSDN博客

开源 Arkts 鸿蒙应用 开发(十六)自定义绘图控件--波形图-CSDN博客

开源 Arkts 鸿蒙应用 开发(十七)通讯--http多文件下载-CSDN博客

开源 Arkts 鸿蒙应用 开发(十八)通讯--Ble低功耗蓝牙服务器-CSDN博客

推荐链接:

开源 java android app 开发(一)开发环境的搭建-CSDN博客

开源 java android app 开发(二)工程文件结构-CSDN博客

开源 java android app 开发(三)GUI界面布局和常用组件-CSDN博客

开源 java android app 开发(四)GUI界面重要组件-CSDN博客

开源 java android app 开发(五)文件和数据库存储-CSDN博客

开源 java android app 开发(六)多媒体使用-CSDN博客

开源 java android app 开发(七)通讯之Tcp和Http-CSDN博客

开源 java android app 开发(八)通讯之Mqtt和Ble-CSDN博客

开源 java android app 开发(九)后台之线程和服务-CSDN博客

开源 java android app 开发(十)广播机制-CSDN博客

开源 java android app 开发(十一)调试、发布-CSDN博客

开源 java android app 开发(十二)封库.aar-CSDN博客
 

本章内容主要为Xcode 默认的工程文件结构,基于Storyboard模式,Objective-C语言开发的工程。

目录:

1.项目文件结构

2.启动和数据流

3.通常的用法

一、项目文件结构

新建项目后的工程文件

你的工程名 (YourProjectName)

这是最顶级的组,包含了整个项目的源代码和资源。

  • AppDelegate.h 和 AppDelegate.m

    • 功能:这是整个应用的核心管理者和“总指挥”。它负责监听和应用生命周期相关的关键事件。

    • AppDelegate.h:头文件,声明了 AppDelegate 类及其需要对外暴露的方法和属性。

    • AppDelegate.m:实现文件,包含了这些方法的具体代码。你会在这里看到诸如:

      • application:didFinishLaunchingWithOptions::应用启动后第一个调用的方法,在这里进行初始化设置。

      • applicationWillResignActive::应用将要进入非活动状态(比如有电话打入)。

      • applicationDidEnterBackground::应用已经进入后台。

      • applicationWillEnterForeground::应用将要进入前台。

      • applicationDidBecomeActive::应用已经变为活动状态(开始与用户交互)。

  • ViewController.h 和 ViewController.m

    • 功能:这是单个界面的控制器。它负责管理你在 Storyboard 中看到的那个视图(View),处理用户的交互(如按钮点击、屏幕触摸)和界面的逻辑。

    • ViewController.h:头文件,声明了与界面元素(如 UILabel, UIButton)关联的 IBOutlet 属性,以及响应事件的 IBAction 方法。

    • ViewController.m:实现文件,你在这里编写控制视图和响应事件的具体代码。它是 UIViewController 的子类。

  • Main.storyboard

    • 功能:这是应用的可视化界面设计文件。你通过拖拽控件(按钮、标签、文本框等)来设计用户界面,而不是纯手写代码。它描述了应用有哪些界面,以及界面之间的跳转关系。

    • 在这个模板中,它包含了一个 ViewController 场景,并通过一个箭头指向它,表示这是应用的初始界面

  • Assets.xcassets

    • 功能:这是应用的图片、图标、颜色等资源的管理库。你将项目中用到的所有图像都放在这里,Xcode 会自动为不同分辨率的设备(如 @2x, @3x)进行管理。

    • 你也会在这里设置应用的图标 AppIcon

  • LaunchScreen.storyboard

    • 功能:这是应用的启动图界面。在应用启动但还未完全准备好与用户交互时,系统会显示这个界面。它通常是一个与首个界面相似的静态页面,用于提升用户体验。注意:不要在这里写复杂的逻辑。

  • main.m

    • 功能:这是整个 Objective-C 程序的入口点。它非常简短,主要工作是调用 UIApplicationMain 函数,这个函数会创建应用程序对象和应用程序代理(AppDelegate),并启动整个事件循环。你通常永远不需要修改这个文件。

  • Info.plist

    • 功能:这是应用的“身份证”和“配置清单”。它是一个属性列表文件,包含了应用的元信息,例如:

      • 应用的显示名称(Bundle display name)

      • 版本号(Bundle version)

      • 主 Storyboard 文件的名称(Main storyboard file base name)

      • 支持的设备方向等。

Products
  • YourProjectName.app

    • 功能:这代表编译后生成的可执行文件。它通常显示为红色,因为在编译之前这个文件还不存在。编译成功后,Xcode 会找到这个 .app 文件的位置,你可以右键选择 “Show in Finder” 来查看生成的应用包。

二、启动和数据流

启动流程:

  1. 程序入口:系统从 main.m 开始执行。

  2. 创建应用核心main.m 中的 UIApplicationMain 函数会创建 UIApplication 单例对象,并实例化 AppDelegate

  3. 初始化:应用代理的 application:didFinishLaunchingWithOptions: 方法被调用。

  4. 加载主界面:系统读取 Info.plist,找到 Main storyboard file base name 的配置(例如 Main)。

  5. 实例化初始控制器:系统加载 Main.storyboard,并创建其中指定的初始 ViewController 的实例。

  6. 显示界面:将 ViewController 的视图显示在屏幕上。

  7. 用户交互:之后,用户与屏幕的交互会由 ViewController 中的 IBAction 方法来响应。

三、通常的用法

开发时的通常做法:

  1. 在 Main.storyboard 中拖拽控件,设计界面。

  2. 在 ViewController.h 中,通过 “Ctrl+拖拽” 的方式创建 IBOutlet(属性)和 IBAction(方法)。

  3. 在 ViewController.m 中实现 IBAction 方法的逻辑代码。

  4. 将图片资源拖入 Assets.xcassets 中,然后在 Storyboard 或代码里使用。

  5. 在 Info.plist 中修改应用名称、版本号等配置。

文件功能的总结:

  • AppDelegate:管理应用级的事件和状态。

  • ViewController:管理单个屏幕的界面和逻辑。

  • Main.storyboard:可视化地设计界面。

  • Assets.xcassets:集中管理图片资源。

  • Info.plist:配置应用的元数据和系统设置。

http://www.dtcms.com/a/600774.html

相关文章:

  • 儿童网站 源码html5网站开发教学
  • 编译类语言的特点与应用
  • Python 数组使用方法总结
  • 网站风格变化免费logo在线制作头像
  • 第三章深度解析:智能体“大脑”的底层逻辑——大语言模型技术基石全拆解
  • 100个云计算基础知识
  • 对比 DeepSeek(MLA)、Qwen 和 Llama 系列大模型在 Attention 架构/算法层面的核心设计及理解它们的本质区别。
  • 【C++】List容器模拟实现(超详细)
  • 湖南火电建设有限公司网站龙采哈尔滨建站公司
  • 【PHP反序列化】css夺旗赛
  • ServletLess架构简介
  • 安卓C语言编译器的选择与使用技巧 | 优化C语言编程体验,提升开发效率
  • (三)自然语言处理笔记——Transformer
  • iOS性能分析工具,有UI卡顿、app启动、内存、webview等性能优化解析
  • 电商网站建设 数商云招商码头无忧查询系统
  • 开源 Objective-C IOS 应用开发(三)第一个iPhone的APP
  • (11)(2.2.2) BLHeli32,AM32, and BLHeli_S ESCs(二)
  • Google Chrome v142.0.7444.135 便携增强版
  • [Windows] PDF文件浏览OCR工具1.0
  • 2025人形机器人产业链全景分析报告:核心技术与市场趋势|附130+份报告PDF、数据、可视化模板汇总下载
  • 长春教做网站带维护的培训机构淮安网站建设
  • 图文详述:MySQL的下载、安装、配置、使用
  • 把课本内容抄到PPT上就行吗?会不会太乱?
  • MySQL XtraBackup 使用文档(全量 + 增量备份与恢复)
  • 在k8s中seaweedfs中,weed 命令详细举例说明
  • 动易 网站统计 首次打开阿里云服务器学生
  • 【底层奥秘与性能艺术】让 RTOS 在 48 MHz MCU 上跑出 0.5 µs 上下文切换——一场从零开始的嵌入式“时间革命”
  • Win11找不到组策略编辑器(gpedit.msc)
  • [智能体设计模式]第2章-路由(Route)
  • [智能体设计模式] 第五章 :函数调用