我使用Swift创建了一个Vidyo iOS应用程序,其中包含this tutorial。
但我正在通过以下方式获得应用程序崩溃:
connector = VCConnector(UnsafeMutableRawPointer(&vidyoView),
viewStyle: .default,
remoteParticipants: 4,
logFileFilter: UnsafePointer("warning"),
logFileName: UnsafePointer(""),
userData: 0)
以下是调试器日志:
错误:LmiFile:[系统主题]:/ tmp / SDK.Release.TRINITY_4_1_20_3.build.tO3KysfAv5/source/SDK/Lmi/Os/LmiFile.c:132:LmiFileOpen_:打开文件v \ 217 \ 206时出错:不允许操作
断言失败:(newVal> = 0),函数LmiSharedPtrRefCountDecUseCount,文件/tmp/SDK.Release.TRINITY_4_1_20_3.build.tO3KysfAv5/source/SDK/Lmi/VidyoClient/../../../SDK/ Lmi / Os / LmiSharedPtrInline.h,第51行。
有人可以帮忙吗?
答案 0 :(得分:1)
教程错了。
传递logFileFilter:
和logFileName:
作为常规的Swift Strings。
connector = VCConnector(UnsafeMutableRawPointer(&vidyoView),
viewStyle: .default,
remoteParticipants: 4,
logFileFilter: "warning",
logFileName: "",
userData: 0)
logFileFilter:
和logFileName:
的参数类型为const char*
。您可以将String传递给此类型的参数,它将为您转换。
来源:passing String to const char* parameter
您应该能够将String直接传递给期望const char *的C函数,并且它将自动转换为以null结尾的UTF-8字符串
答案 1 :(得分:0)
在创建连接器之前,请确保要初始化程序包:
// Initialize package
VCConnectorPkg.vcInitialize()
// Create connector
connector = VCConnector(UnsafeMutableRawPointer(&vidyoView),
viewStyle: .default,
remoteParticipants: 4,
logFileFilter: "warning",
logFileName: "",
userData: 0)
这为我解决了这个问题。祝你好运!