gpt4 book ai didi

swift - 如果没有#import,Swift 是否有自己的简单方法来检测循环依赖?

转载 作者:IT王子 更新时间:2023-10-29 05:51:09 27 4
gpt4 key购买 nike

#import "whatever.h"

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

您可以确定哪些类知道其他类——只需轻弹一下手指。

如果必须,您可以注释掉所有 导入语句,然后一次将它们添加回去,以便诊断依赖性问题。它不一定很快,但非常简单。

如果一个类除了强制性的头文件之外没有导入任何东西,Son,那就是你那里的一个模块化类!

如果您的项目有十个不导入任何内容的类,那么您就知道它们是十个模块化类——您不必将每个类打包到它自己的框架或类似的东西中。简单的。

但是现在,根据 Swift 的“每个人都知道所有事情”的政策,似乎只有个人保持警惕才能维持模块化。个人警惕是最糟糕的一种!

我错过了什么吗?有没有一种方法可以在 Swift 中轻松完成这些事情?

最佳答案

如果你想模块化你的 Swift 代码,你应该使用模块!

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

通过单击此处的加号向您的项目添加一个新目标:

enter image description here

为适当的平台 (iOS/OS X) 选择“Framework & Library”:

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,这意味着它可以从 module 内的任何地方访问,但不能从模块外部访问。我们要在模块外使用的任何代码都必须被赋予 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

关于swift - 如果没有#import,Swift 是否有自己的简单方法来检测循环依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29439515/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com