繁体   English   中英

Swift xcode 应用程序可以在同一个项目中调用另一个 xcode 应用程序中的函数吗?

[英]Can a Swift xcode app call functions in another xcode app, both in same project?

xcode Swift 应用程序能否在第二个 xcode Swift 应用程序中调用函数,或者第二个必须是静态库?

为什么:
我需要提供由第三个 Swift 应用程序调用的函数。
我有一个现有的 swift 应用程序。
将新功能放入第三个应用程序调用的现有应用程序将节省开发时间。

否则必须创建和维护静态库。

您可能已经知道,iPhone 上的所有应用程序都在沙盒中运行,以提供高级别的安全性。 据我所知,有多种方法可以实现这一点,但其中很多方法太复杂而无法用于此目的。

以下是管理应用程序之间通信的两种方法,可能会对您有所帮助:

  1. 通过注册的 URL 处理程序管理应用程序之间的通信。 单击此处了解如何完成此操作。
  2. 通过 Wi-Fi 和蓝牙的对等网络。 样本

后期编辑:

使用第一种方法真的很简单有效,只要你不需要在应用程序之间传输数据。

是一个旧项目,它演示了它是如何工作的。 (查看自述文件末尾的 gif)

不要忘记,如果您使用 SceneDegate 在该文件中实现

  
    func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
        if let url = URLContexts.first?.url {
            print(url)
            if url.pathComponents.contains("method1") {
                print("Method1 called")
            }
            if url.pathComponents.contains("method2") {
                print("Method2 called")
            }
        }
    }

在同一个项目中与此无关。 如果它们是单独的应用程序,它们是单独的应用程序,并且不能直接交互(有关它们可以间接通信的某些方式,请参阅 C-Viorel 的答案,但这与调用方法无关)。

但是你不需要做太多的管理。 将文件拉入一个非常轻量级的本地 Swift 包中。 如果这太复杂了,只需将相关文件添加到两个应用程序即可。

目标成员资格窗格

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM