xcode 我应该在导入UKit的同时导入Foundation吗?

h43kikqp  于 2022-11-26  发布在  其他
关注(0)|答案(4)|浏览(128)

导入UIKit(它本身就有Foundation导入)时,我是否应该包括Foundation导入?
UIKit将来能在没有Foundation的情况下工作吗?理论上,它能在未来破解我的代码吗?

rryofs0p

rryofs0p1#

始终导入您可以忽略的 * 最低 * 级别:

  • 如果您的文件是纯Swift库,则不导入任何内容。
  • 如果您的档案需要Foundation类型,请汇入Foundation。
  • 如果您的文件需要UIKit类型(它们都以UI开头),请导入UIKit。
  • 如果文件需要SwiftUI类型,请导入SwiftUI。

你应该只做 * 一个 * 上面的事情,至于你原来的问题,UIKit本身导入了Foundation(你说得对),所以如果一个文件导入了UIKit,它不需要显式导入Foundation,你应该 * 不 * 显式导入它。
UIKit不会在未来神奇地失去访问Foundation类型的能力。没有NSString的UIKit在形而上学上是不可能的。相反,如果NSString消失了,UIKit本身也会消失,* 那 * 就是破坏。

0lvr5msh

0lvr5msh2#

不需要,您不需要同时导入Foundation和UIKit。如果您使用任何UI* 类型,UIKit就足够了。如果您不使用任何UI* 类型,您就不需要UIKit,只可以保留Foundation。

shyt4zoc

shyt4zoc3#

不,你只需要为不使用UIKit的类导入Foundation。
将来您可能会希望使用通过SwiftUI或AppKit导入Foundation的类,因此最好将UI代码与非UI代码分开。
我个人甚至不会在视图模型中使用UIImageUIColor,因为我认为视图模型应该是Foundation only。

gr8qqesn

gr8qqesn4#

UIKit在Foundation之前更有可能成为多余的,SwiftUI已经成为UIKit的替代品,而Foundation比UIKit更通用,例如,如果你有只需要Foundation的东西,它可能在UIKit应用程序、SwiftUI应用程序、MacOS ApplicationKit应用程序、TVOS应用程序、没有GUI的Comandline工具中工作。

相关问题