iOS工程目录结构剖析

作者: 亦枫 | 来源:发表于2016-01-29 23:22 被阅读2667次

记录一个菜鸟的iOS学习之旅,如能帮助正在学习的你,亦枫不胜荣幸;如路过的大神如指教几句,亦枫感激涕淋!

最近想了想,还是决定写篇短文,简单介绍一下Xcode环境下iOS工程的目录结构,帮助大家对整个应用结构有一个初步的了解,便于后面深度的学习。这是一篇晚来的文章,应该作为《iOS学习之旅》系列文章的第二篇呈现给大家,不过现在出现也算为时未晚。

初始工程目录结构.png

在Xcode中,新建工程的目录机构如上图所示。以图中的EduTest工程为例,导航视图中包含了存放源码的EduTest、存放单元测试代码的EduTestTests、存放编译结果的Products,其实在实际项目开发中,还需要用到存放第三方框架或者库文件的Frameworks,这样,就有了了由四个组构成的一个标准的项目结构。

这里有一个细节需要注意,就是工程结构中“组”和“文件夹”这两个概念。他们之间的区别主要体现在访问资源文件的时候。访问文件夹中的资源时需要在路径中添加相应文件夹目录名。拿图片资源来说,一个名为“launcher.png”的图片文件,放在image文件夹下,她的访问路径就是“image/launcher.png”,如果放在组下面,访问路径就是“launcher.png”。

就下来主要讲讲工程中四大组中最重要也是开发中最常用的一个组,即开发源码存放的组,这里就是上图中的EduTest。

EduTest组中包含了两大类:AppDelegate类和ViewController类,一个组:Supporting Files,和一个故事板文件:Main.storyboard。

AppDelegate是应用程序委托对象,继承自UIResponder类,并实现了UIApplicationDelegate委托协议。UIResponder类可以使子类AppDelegate具有处理相应事件的能力,而UIApplicationDelegate委托协议使AppDelegate能够成为应用程序委托对象,这种对象能够响应应用程序的生命周期。

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

@end

ViewController是视图控制器,继承子UI View Controller,起到控制显示视图和处理视图触摸事件的作用。

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@end

Main.storyboard是故事板文件,包含了应用中的视图控制器场景,同时描述了多个视图控制器之间的导航连接关系。

Supporting File组通常包含4个文件,本文中使用的工程案例只用到了两个。这4个文件的作用如下:

  • info.plist
    工程描述的属性文件,通过XML的格式定义了一些工程中常用的属性功能,这些功能的使用这里就不一一介绍了,在以后的文章中通过实例的形式再逐一学习如何使用,可以先看看其中的内容;
info.png
  • main.m
    应用程序入口文件,程序的运行就是从其中的main方法开始的,从代码中可以看到,这里对应用程序委托对象AppDeleget进行了初始化的操作;
#import <UIKit/UIKit.h>
#import "AppDelegate.h"

int main(int argc, char * argv[]) {
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}
  • InfoPlist.strings
    工程本地化的字符串文件,存放代码中使用到的一些字符串;

  • Prefix.pch
    在这个文件中,可以存放一些不经常被修改的头文件,减少其他文件的重复引用,同时提高了程序的变异速度。

以上便是一个iOS工程所包含的大致目录机构,本文只是系统性的简述,针对每个文件的功能和用法将在后续文章中通过具体案例项目需求一一介绍,这样,便能对每个知识点理解的更加透彻,使用的更加得心应手。

学海无涯,一步一个脚印!

相关文章

  • iOS工程目录结构剖析

    记录一个菜鸟的iOS学习之旅,如能帮助正在学习的你,亦枫不胜荣幸;如路过的大神如指教几句,亦枫感激涕淋! 最近想了...

  • [iOS-Practice] 项目结构

    总结时读到的一系列文章 iOS应用架构谈 开篇我的iOS工程结构iOS项目的目录结构-原创iOS 项目的目录结构能...

  • React Native工程启动流程

    一、React Native工程结构分析 1) 初始化RN工程 2) 工程目录结构图 3)工程启动流程分析 iOS...

  • 聊聊iOS工程目录结构

    关于工程目录结构和代码管理,每个开发者可能都有自己的理念和习惯,但是都应该以简单、清晰、容易查找为原则。比较混乱的...

  • iOS 移动项目文件

    前言 并不喜欢iOS 项目默认的文件存放目录,自己想更改一下. 第 1 步 新建工程, 工程目录结构如下: 第 ...

  • AFN详解

    在iOS开发中AFNetworking占据了不小的分量,因此,对AFN进行详细的剖析。先看下AFN的目录结构: A...

  • iOS工程目录结构的思考

    一、前言 在 @汉斯哈哈哈 的 iOS 项目的目录结构能看出你的开发经验 这篇博客里提到一点: 面试iOS开发,面...

  • iOS-iOS工程结构解析以及多环境配置

    知 识 点 / 超 人 目录1.iOS工程结构解析1.1 Workspace1.2 Project1.3 Targ...

  • 工程目录结构

    libutils是工具库(最底层),很多lib都可以引用 libcore是核心层,一般只有app引用 libui一...

  • Android目录结构剖析

    src Java代码所在地,MainActivity在里面 gen 里面的内容自动生成,重要的是一个R.java文...

网友评论

  • 小時間光:iOS第一个字母小写,后两个字母大写。
    亦枫:@漓纤墨 @iOSer_ZChao 谢谢提醒,已将《iOS学习之旅》系列文章相应地方全部更改,如有兴趣,欢迎关注我的微信公众号:技术鸟,微信号:NiaoTech,交流学习 :smiley:
    b596c82fcbc1:@漓纤墨 每当看见不规范写iOS的,就想笑:smile:
  • ETHANAIR:顶一个
    亦枫:谢谢
  • ff4027bec949:不错
    亦枫:谢谢:yum:

本文标题:iOS工程目录结构剖析

本文链接:https://www.haomeiwen.com/subject/wcrjkttx.html