没有#import,Swift有自己的简单方法来检测循环依赖吗?

时间:2015-04-03 20:52:06

标签: swift

#import "whatever.h"

......并不完美,但它对于诊断循环依赖性非常方便,更不用说强制执行模块化了。

你可以确定哪些课程了解其他课程 - 轻轻一按。

如果必须,您可以注释所有导入语句,并一次添加一个,以便诊断依赖性问题。它不一定快,但它很简单。

如果一个班级没有导入除强制性标题以外的任何内容,Son,那是你在那里的一个模块化课程!

如果你的项目有10个没有导入任何东西的类,那么你就知道它们是10个模块化的类 - 你不必将每个类打包到它自己的Framework或类似的东西中。简单。

但是现在,随着斯威夫特的“每个人都知道所有事情”的政策,似乎只是个人保持警惕以维持模块化。个人警惕是最糟糕的一种!

我错过了什么吗?有没有办法在Swift中轻松完成这些工作?

1 个答案:

答案 0 :(得分:7)

如果您想模块化您的Swift代码,您应该使用 modules

创建一个新模块非常简单。

点击此处的加号:

,为项目添加新目标

enter image description here

选择"框架&文库"适用于适当的平台(iOS / OS X):

enter image description here

选择" Cocoa Framework" (或Cocoa Touch,取决于平台)并单击下一步:

enter image description here

为您的模块命名并将语言更改为Swift(或将其保留为Objective-C,它不重要,您可以同时使用它们。)

enter image description here

将Swift文件添加到您的模块中:

enter image description here

在Swift文件中添加一些代码。请注意,Swift的默认访问级别为internal,这意味着可以从模块中的任何位置访问它,但不能从模块外部访问它。我们要在模块外部使用的任何代码都必须具有public访问级别。

public class ModularSwift {
    public init(){}
    public var foo: Int = 0
}

确保构建您的模块(Cmd + B):

enter image description here

返回原始目标,导入模块并开始使用其代码:

import MyModularSwiftCode

let foo = ModularSwift()

Xcode非常高兴:

enter image description here

现在,注释掉import语句并注意错误:

enter image description here