swift – 如何将字符串数组转换为NSData,NSData转换为字符串数组
发布时间:2020-12-14 05:31:37 所属栏目:百科 来源:网络整理
导读:我想将[String]转换为NSData以进行BLE连接. 我知道如何将String转换为NSData / NSData为String. // String - NSDatavar str: String = "Apple";let data: NSData = str.dataUsingEncoding(NSUTF8StringEncoding)!// NSData - Stringvar outStr: String = NSS
我想将[String]转换为NSData以进行BLE连接.
我知道如何将String转换为NSData / NSData为String. // String -> NSData var str: String = "Apple"; let data: NSData = str.dataUsingEncoding(NSUTF8StringEncoding)! // NSData -> String var outStr: String = NSString(data:data,encoding:NSUTF8StringEncoding) as! String 但是,我该如何转换, // [String] -> NSData ??? let strs: [String] = ["Apple","Orange"] 这是转换[UInt8]< - >的样本.的NSData 我想转换[String]< - >的NSData // [String] -> NSData ??? Is it correct??? var strs: [String] = ["Apple","Orange"] let data2 = NSData(bytes: &strs,length: strs.count) // NSData -> [String] ... please teach me..
为了直接回答您的问题,您可以向数组中的每个字符串询问其thisString.dataUsingEncoding(_ :)并将结果附加到NSMutableData实例,直到您完成所有操作.
let stringsData = NSMutableData() for string in strings { if let stringData = string.dataUsingEncoding(NSUTF16StringEncoding) { stringsData.appendData(stringData) } else { NSLog("Uh oh,trouble!") } } 当然,如果你想稍后分离字符串,这对你没有帮助,所以我们真正需要知道的是你打算在什么环境中在连接的另一端使用这些数据?如果另一端也使用Cocoa,请考虑将其打包为PLIST.由于NSString,NSArray和NSData都是属性列表类型,因此您可以直接归档NSAtring NSString实例: let arrayAsPLISTData = NSKeyedArchiver.archivedDataWithRootObject(strings) …然后将生成的NSData实例传输到Cocoa感知目标,然后: if let newStrings: [String] = NSKeyedUnarchiver.unarchiveObjectWithData(arrayAsPLISTData) as? [String] { // ... do something } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |