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

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

相关链接:

开源 Objective-C IOS 应用开发(一)macOS 的使用

开源 Objective-C IOS 应用开发(二)Xcode安装

开源 Objective-C IOS 应用开发(三)第一个iPhone的APP

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

开源 Objective-C IOS 应用开发(五)iOS操作(action)和输出口(Outlet)

推荐链接:

开源 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.hAppDelegate.m

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

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

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

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

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

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

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

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

  • ViewController.hViewController.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:配置应用的元数据和系统设置。

相关推荐
G佳伟3 小时前
如何解决解决,微信小程序ios无法长按复制问题<text>设置 selectable=“true“不起作用
ios·微信小程序·小程序
说私域3 小时前
开源链动2+1模式AI智能名片S2B2C商城小程序的价值及持续变现能力分析
人工智能·小程序·开源
Nick56833 小时前
Apple Pay 与 Google Pay 开发与结算全流程文档
ios·安卓·android-studio
全栈派森3 小时前
初见 Dart:这门新语言如何让你的 App「动」起来?
android·flutter·ios
HarderCoder4 小时前
Swift 内存管理:吃透 ARC 、weak、unowned
ios·swift
q***2514 小时前
开源模型应用落地-FastAPI-助力模型交互-进阶篇-中间件(四)
开源·交互·fastapi
Digitally4 小时前
5种将照片从iPhone传输到戴尔PC/笔记本电脑的方法
ios·电脑·iphone
ajassi20005 小时前
开源 Objective-C IOS 应用开发(三)第一个iPhone的APP
ios·开源·objective-c
Daniel_Coder10 小时前
iOS Widget 开发-9:可配置 Widget:使用 IntentConfiguration 实现参数选择
ios·swiftui·swift·widget·intents