将CFString转换为NSString – Swift
发布时间:2020-12-14 05:37:05 所属栏目:百科 来源:网络整理
导读:我正在尝试编写一个程序,将扫描可用的串行端口并将其显示在弹出菜单中.为什么不能直接从IORegistryEntryCreateCFProperty()函数中获取CFString,并在下一行通过字符串插值将其添加到菜单中?由于某种原因,我的变量声明遇到错误: “NSString is not a subtype
我正在尝试编写一个程序,将扫描可用的串行端口并将其显示在弹出菜单中.为什么不能直接从IORegistryEntryCreateCFProperty()函数中获取CFString,并在下一行通过字符串插值将其添加到菜单中?由于某种原因,我的变量声明遇到错误:
import Foundation import Cocoa import IOKit import IOKit.serial @objc class Serial { init() { } @IBOutlet var serialListPullDown : NSPopUpButton! func refreshSerialList(defaultprompt: String) { let masterPort: mach_port_t = kIOMasterPortDefault let classesToMatch: CFDictionary = IOServiceMatching(kIOSerialBSDServiceValue).takeUnretainedValue() var matchingServices: io_iterator_t = 0 // remove everything from the pull down list serialListPullDown?.removeAllItems() // ask for all the serial ports let kernResult = IOServiceGetMatchingServices(masterPort,classesToMatch,&matchingServices) if kernResult == KERN_SUCCESS { // success while (io_object_t() == IOIteratorNext(matchingServices)) { var serialport = IORegistryEntryCreateCFProperty(io_object_t(),kIOCalloutDeviceKey,kCFAllocatorDefault,0) serialListPullDown?.addItemWithTitle("(serialport)") } } else { // error } } }
Swift.String和NSString是免费的桥接.
NSString和CFString可以彼此转换,但是您不能直接从Swift String转换为CFString,反之亦然. 按照以下步骤从Core Foundation String转换为Swift字符串: var cfStr:CFString = "Soon,I'll be a Swift String" var nsTypeString = cfStr as NSString var swiftString:String = nsTypeString CFTypeRef示例: var cfStr:CFTypeRef = "Soon,I'll be a Swift String" var nsTypeString = cfStr as NSString var swiftString:String = nsTypeString (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |