前言:PureMVC 是一个定位于设计高性能 RIA 客户端的基于模式 的框架。
PureMVC官网:PureMVC官网
前段时间公司技术大牛给我们几个菜鸟大致讲解了一下关于IOS开发中PrueMVC架构的简单应用以下简称MVC架构,东西很杂,不喜勿喷!!!仅用于个人备忘和有兴趣学习IOS开发的小白爬坑Emmmm
1、新建项目的时候勾选"Use Core Data"则会在项目中添加一个 SQL Lite 的数据库,用于存放本地账号、密码等
2、"NS"前缀的类是官方的类,如:
let dict: NSMutableDictionary = NSMutableDictionary()
3、"@"在编译时会进行正常编译,如:
@UIApplicationMain
4、变量、类、静态命名:
- 定义变量时首字母要小写
- 定义类时首字母要大写
- 静态全大写(静态可以用类直接点出来)
如在 AppCmd 类中定义如下静态字符串 STARTUP :
static var STARTUP = "AppCmd-startup"
在其它类中使用时可以直接点出来:
func startup(app: AppV) {
sendNotification(AppCmd.STARTUP, body: app)
}
5、关于类和方法的中的 static :
- 类不可以被定义为 static
- 方法可以被定义为 static
6、方法参数如果为空则要写赋值 nil :
// the proxy name
fileprivate var _proxyName: String
// the data object
fileprivate var _data: Any?
public init(proxyName: String?=nil, data: Any?=nil) {
_proxyName = proxyName ?? Proxy.NAME
_data = data
}
7、关于方法参数:
如果一个方法的参数如下:
func getStoryboaryID(_ viewController,Name:String){
...
}
则在调用该方法时只需要这样写就行(第一个参数 viewController 因为用了_ 则不用写参数名):
getStoryboaryID(AppVController,Name:"AppV")
8、修改代码后运行程序报错,但是检查后发现并没有错误代码?
在上方工具栏上依次 Product - Clean Build Folder
9、如何添加并设置页面的启动顺序?
例如:程序为启动顺序为:
启动页面(AppV)- 登录页面(LoginV) - 主页面(HomeV)- 其它(OtherV)
9.1、先添加登录页面(LoginV ):
如何添加页面文件?
- 快捷键"command+N"
- 在上方工具栏上依次选择:File - New - File...
在弹出的选择框中选择 User Interface 中的 Storyboard ,并点击 "Next" 如下图:
修改文件名称(如:Main.storyboard)并选择文件存放的路径(默认路径就行),点击"Create"
重点:此时点面 Main.storyboard 文件什么也看不到需要依次在 Main.storyboard 中添加如下对象(Object)
在弹出的选择框中搜索并选择"View Controller"
点击新建好的 Storyboard 修改其名称为"LoginV"(记得要按 Enter 确定呀,不然修改不了emmmm)如下图:
注:Storyboard 是用来做页面皮肤的,一个 Scene 就是一个页面
9.2、添加启动页面(AppV):
接着在 Main.storyboard 中添加如下对象"Navigation Controller"
此时点击选择"View Controller"会出现两个两个"Scene",分别为:
- Root View Controller Scene
- Navigation Controller Scend
选中并删除"Root View Controller Scene"
为什么要删除"Root View Controller Scene"呢?
答:Root View Controller Scene 程序的总启动入口,删除 Root View Controller Scene 后自定义程序总入口为"AppV"
点击选择"Navigation Controller Scend"修改其名称为"AppV"(记得要按 Enter 确定呀,不然修改不了emmmm)如下图:
如何将"AppV"设定为程序的总入口呢?
重点:在 AppV中同时按住"Ctrl+鼠标右键"并拖动鼠标,此时会出现一根蓝色的指示线,如下图:
完成上面的操作后,点击选中 AppV,并将其设置为主界面入口,如下图:
选中 LoginV 为其添加"Scroll View"
将"Scroll View"的大小调节到满屏大小,如下图:
9.3、添加主页面(HomeV)和其它页面(OtherV):
下面以主页面(HomeV)为例子(其它页面(Other)和主页面一样)
在右边项目文件中点面选择 Main.storyboard 为其添加如下对象"View Controller",如下图:
点击选择新添加的"View Controller"修改其名称为"HomeV"(记得要按 Enter 确定呀,不然修改不了emmmm)如下图:
仿照步骤9.3添加 OtherV 并修改其名称,完成后 Main.storyboard 如下图:
10、为项目添加 Pure MVC 类库:
将下载好的 Pure MVC 类库(注意下载 Swift 版本的)从本地文件夹直接拖进项目中,在弹出的选择中选择如下图,点面Finish:
此文件只是在项目中进行调用,我们不需要修改其中的任何代码!
11、添加 Pure MVC 架构需要的 model、view、controller 文件夹:
基于对 Java 的习惯我们会将 model、view、controller 文件夹放在一个 com 文件夹中~~~
11.1、新建一个 com 文件夹:
在项目主文件上鼠标右键选择"New Group",并修改文件夹名称为"com"
11.2、在 com 文件夹中添加 model、view、controller 文件夹:
依次在 com 文件上鼠标右键选择"New Group",并修改文件夹名称为 model、view、controller,完成后文件夹结构如下图:
12、修复 Buildtime 中的警告⚠️:
警告如下:
警告的大概意思是我们没有将已存在的 Storyboard 与任何的类进行绑定!
好了,既然知道原因了,那让我们消灭这两个警告⚠️ Go Super Go~~~
12.1、在步骤11.2中新建的 view 文件夹中添加3个文件夹(按照步骤11.1添加):Login、Home、Other,并在每个文件夹中对应的添加两个 .swift 格式的文件:Login 下新建 LoginV、LoginM、Home 下新建 HomeV、HomeM、Other 下新建 OtherV、OtherM
如何在 Login、Home、Other 每个文件夹中对应的添加两个 .swift 格式的文件?
以为 Login 文件夹添加 LoginV、LoginM 为例:在 Login 文件夹上鼠标右键选择 New File... 在弹出的选择框中选择 Swift File 点击 Next,在接下来的弹出框中修改文件名称为 LoginV 并点击 Create 重复此步骤添加 LoginM
完成后依次为 Home、Other 文件夹添加其对应的 V 文件和 M 文件
注意:公司大牛是将项目主入口文件(AppV)对应的 V 文件和 M 文件直接放在了 view 文件夹下,原因大概说是 AppV 中是要包含 Login、Home 和 Other 的
在 view 文件夹下添加 AppV 和 AppM
~~~完成后项目文件目录如下:
12.2、正式开始消灭这警告⚠️:
点击选择 Main.storyboard 文件,下面以 AppV 为例:
选中 AppV 将 Class 和 Storyboard ID 都修改为 AppV (注意按 Enter 确定~)
仿照 AppV 的设置完成 LoginV、HomeV 和 OtherV 的设置~~~
此时我们再去看 Buildtime 中的警告⚠️时会发现警告已经被我们「打跑了」
END