Ios Swift:如何使用链接库中的Objective-C函数?
背景 为了学习,我对iOS开发和Swift是新手。作为一个小挑战,我正在尝试获取设备当前连接到的网络的SSID 这是使用Objective-C:在堆栈上很好地覆盖的地面,例如。。。但是Objective-C/Swift舞蹈给我带来了一些概念上的挑战 具体地说,建议的解决方案(在上面的链接帖子中讨论)是调用函数Ios Swift:如何使用链接库中的Objective-C函数?,ios,objective-c,swift,Ios,Objective C,Swift,背景 为了学习,我对iOS开发和Swift是新手。作为一个小挑战,我正在尝试获取设备当前连接到的网络的SSID 这是使用Objective-C:在堆栈上很好地覆盖的地面,例如。。。但是Objective-C/Swift舞蹈给我带来了一些概念上的挑战 具体地说,建议的解决方案(在上面的链接帖子中讨论)是调用函数CNCopyCurrentNetworkInfo()——但根据,该函数在Swift中不可用 到目前为止 我已经将SystemConfiguration.framework添加到项目的链接框架
CNCopyCurrentNetworkInfo()
——但根据,该函数在Swift中不可用
到目前为止
我已经将SystemConfiguration.framework
添加到项目的链接框架和库中(我想是正确的)。我还使用importsystemconfiguration
将其引入视图控制器
问题
导入系统配置
SystemConfiguration
库谢谢大家! 苹果的互操作性手册(摘自): 任何可以作为模块访问的Objective-C框架(或C库) 可以直接导入Swift。这包括所有 Objy-C系统框架,如基金会、UIKIT和 SpriteKit以及随系统提供的通用C库 关于你的具体问题:
import
语句(例如在您的情况下import SystemConfiguration
),甚至——或者更确切地说:特别是——在操场上SystemConfiguration
确实是导入的,因为您可以调用它的函数(例如SCCopyLastError()//-->uu\NSCFError
)并访问它的常量(例如kCFErrorDomainSystemConfiguration/-->com.apple.SystemConfiguration
)。不幸的是,CaptiveNetwork
似乎没有随它一起导入(例如,CNCopySupportedInterfaces()/-->使用未解析的标识符
)但是,您应该能够在Objective C端使用此框架,并且只需从Swift调用您自己的包装器函数。您只需要记住将它们包含在桥接头中列出的导入中(有关桥接头的更多信息,请参阅)。我知道这并不是直接回答您的问题,而是对您问题的回答。 在你的情况下,你可以用swift做任何事情 导入库之后
导入系统配置。CaptiveNet工作
你可以立即致电:
CNCopySupportedInterfaces()
它会起作用的。
在Xcode 6.3.2中确认。唯一的问题是,当我键入“CN”并按Ctrl+Space时,autocomplete仍然不会显示任何内容。不要被这句话蒙蔽了——完整的“CNCopySupportedInterfaces”一词就行了!你知道谁拥有这个东西吗?根据仅涉及目标C的文档,用户有责任调用CFRelease,但是Swift中没有此功能。