我正在尝试在swift中实现PeerTalk框架。 当mac向我发送数据时获取此类型:
public class PTData : NSObject {
public var dispatchData: dispatch_data_t! { get }
public var data: UnsafeMutablePointer<Void> { get }
public var length: Int { get }
}
可以假设进行简单转换和nil
检查:
if payload != nil {
let databis = NSData(bytesNoCopy: payload.data, length: payload.length, freeWhenDone: false)
let data = NSData(contentsOfDispatchData: payload.dispatchData)
let str = NSString(data: data, encoding: NSUTF8StringEncoding)
let strbis = NSString(data: databis, encoding: NSUTF8StringEncoding)
print("data is receive")
print(str)
print(strbis)
}
有效负载属于PTData
类型!如前所述。
我试过的方法都没有用来恢复我的字符串,我明白了:
收到数据
可选()
有什么想法吗?
答案 0 :(得分:0)
let strbis = NSString(data: databis, encoding: NSUTF8StringEncoding)
返回可选类型的NSString?
所以你应该写一些类似的东西:
if payload != nil {
let databis = NSData(bytesNoCopy: payload.data, length: payload.length, freeWhenDone: false)
let data = NSData(contentsOfDispatchData: payload.dispatchData)
let str = NSString(data: data, encoding: NSUTF8StringEncoding)
let strbis = NSString(data: databis, encoding: NSUTF8StringEncoding)
print("data is receive")
if str != nil {
print(str!)
}
if strbis != nil {
print(strbis!)
}
}