Ios 在swift中创建头文件和实现文件

Ios 在swift中创建头文件和实现文件,ios,swift,Ios,Swift,这更像是一个编码风格的问题,但我相信它是有效的。我来自OBJC背景,在创建类时总是创建.h和a.m。然而,随着swift的变化,所有这些都进入了一个文件。我知道对某些人来说这很酷,但我怀念把这两件事分开 引述 “我错过的是一个公共方法列表,而不是搜索 未标记为private的方法的整个源文件。存在 “向接口写入”的编程概念。以及公众 方法应该仔细挑选,而不仅仅是因为开发人员 忘了做些私人的事。” 有没有一种方法可以使用swift在单独的文件中创建头实现类?也许是什么把戏 谢谢简言之,不用了。。但

这更像是一个编码风格的问题,但我相信它是有效的。我来自OBJC背景,在创建类时总是创建.h和a.m。然而,随着swift的变化,所有这些都进入了一个文件。我知道对某些人来说这很酷,但我怀念把这两件事分开

引述


“我错过的是一个公共方法列表,而不是搜索 未标记为private的方法的整个源文件。存在 “向接口写入”的编程概念。以及公众 方法应该仔细挑选,而不仅仅是因为开发人员 忘了做些私人的事。”

有没有一种方法可以使用swift在单独的文件中创建头实现类?也许是什么把戏


谢谢

简言之,不用了。。但是你错过了什么。。?一旦你习惯了,你可能会喜欢这样!旧的分离比新的分离没有明显的优势

越来越多的语言使用这种方法,因为它减少了耦合和错误。 因此,当您更改一个函数的签名时,需要检查另一个文件来更新它,这只是重复,没有任何附加值


您描述的问题(如何仅查看“公共”函数)通常是通过购买工具(IDE)或文档生成器来完成的。

据我所知,这是无法完成的。也就是说,如果正确地列出了.swift文件,那么它们仍然是非常可读的。我倾向于遵循swift中的样式设置指南,我发现它可以将内容分解为可读的部分,尤其是通过使用//MARK:。

您可以创建两个swift文件:

  • YourClassNameHeader.swift
  • 给你的classname分类{//把你所有的属性都放在这里
    }

  • YourClassNameMethods.swift或YourClassNamePrivate.swift
  • 扩展名YourClassName{//将所有私有方法和 属性}


    但一般来说,它不是一个好的实践

    可能是您可以使用生成的接口查看所有公共方法和属性。您可以在源代码编辑器窗口左上角的相关文件弹出窗口的底部找到该选项。要切换回,请在同一弹出窗口中单击原始源

    快捷方式:control+cmd+向下箭头

    这就是生成的接口文件的外观


    我错过的是一个公共方法列表,而不是在整个源文件中搜索未标记为
    private
    的方法。有一种编程概念是“向接口写入”。而且应该仔细选择公共方法,而不仅仅是因为开发人员忘记将一些
    设置为私有的
    。所有人都需要查看接口,其余的对类的用户来说是不透明的。类实现者可以自由地更改、添加和删除接口中未公开的任何方法,而不必担心程序中其他地方的影响。这减少了耦合。是的@扎夫,你说得很对!这就是为什么。事实上,我将编辑我的答案。我尝试过的最接近的是一个协议,但会有一个命名问题,我只是在协议名称后面附加“接口”。然后确保我标记了所有不在协议私有中的方法。你看,我相信你说得很对。这是最接近的。谢谢我将尝试一下。+1对于协议,请查看这篇文章,大意是:单个文件如何“减少耦合”?在最近的Objective-C中,接口文件中唯一需要的是公共声明。是的,但是作为开发人员,您需要手动将信息从一个文件复制到另一个文件。。。。例如,swift不再需要编写头文件(但如果您想在目标C中使用swift代码,则工具会自动创建头文件)。是的,开发人员确实需要执行工作并创建其工作的公共接口的头文件。这也是文档,我想也可以跳过,因为它是工作。自动创建的头文件对使用其他Swift类的Swift类没有好处。丢失的是封装(仅公开公共细节)和写入接口。