如何将新的.swift文件添加到已经包含.c的Xcode静态库项目中,以便Swift应用可以调用新文件中的func?

mrzz3bfm  于 2023-03-04  发布在  Swift
关注(0)|答案(1)|浏览(133)

我用.c文件创建了一个Xcode静态库项目,它可以正常工作。
我使用Xcode“new file”将包含Swift“func health_algo_test()”的新.swift文件添加到我的静态库中,但构建包含库的应用项目时无法找到health_algo_test(),并出现构建错误:
“在范围”中找不到“health_algo_test”。
视图控制器:

override func viewDidLoad() 
{
    health_algo_test() //!!!
    . . .
}

interface.swift:

import Foundation

import UIKit
import os
    
func health_algo_test()
{
    print("health_algo_test...")
}

通过运行nm显示.a的内容...........
lib的.a输出内容:'$ nm调试-iphoneos/库项目库. a|grep健康
00000000000000 T _$s33项目库16运行状况算法测试F
静态库项目................

bf1o4zei

bf1o4zei1#

请记住将新文件添加到要包含它的任何目标。
在项目导航器(View-〉Navigators-〉Project)中选择文件,然后查看文件检查器(View-〉Inspectors-〉File),您将看到一个包含项目中所有目标列表的检查表;请确保您尝试构建的目标旁边有一个复选标记,表示新文件将包含在该目标中。
此外,由于您正在构建一个库,而调用health_algo_test()的代码在库之外,因此您需要将该函数(以及客户端应该能够调用的任何其他函数)标记为public,例如:

public func health_algo_test()
{
    print("health_algo_test...")
}

相关问题