草庐IT

Swift - 从具有长度的 UnsafePointer<UInt8> 转换为 String

我考虑了很多类似的问题,但仍然无法让编译器接受这一点。SocketMobileAPI(在Objective-C中)将ISktScanDecodedData传递到Swift中的委托(delegate)方法(数据可能是二进制的,我想这就是为什么它没有作为字符串提供):funconDecodedData(device:DeviceInfo?,DecodedDatad:ISktScanDecodedData?){letsymbology:String=d!.Name()letrawData:UnsafePointer=d!.getData()letrawDataSize:UInt32=deco

ios - 将具有 UInt8 组件类型的纹理传递给 Metal 计算着色器

我有一个以编程方式生成的图像,我想将此图像作为纹理发送到计算着色器。我生成此图像的方式是将每个RGBA分量计算为UInt8值,并将它们组合成一个UInt32并将其存储在图像的缓冲区中。我使用以下代码来执行此操作:guardletcgContext=CGContext(data:nil,width:width,height:height,bitsPerComponent:8,bytesPerRow:0,space:CGColorSpaceCreateDeviceRGB(),bitmapInfo:RGBA32.bitmapInfo)else{print("UnabletocreateCGC

ios - 将具有 UInt8 组件类型的纹理传递给 Metal 计算着色器

我有一个以编程方式生成的图像,我想将此图像作为纹理发送到计算着色器。我生成此图像的方式是将每个RGBA分量计算为UInt8值,并将它们组合成一个UInt32并将其存储在图像的缓冲区中。我使用以下代码来执行此操作:guardletcgContext=CGContext(data:nil,width:width,height:height,bitsPerComponent:8,bytesPerRow:0,space:CGColorSpaceCreateDeviceRGB(),bitmapInfo:RGBA32.bitmapInfo)else{print("UnabletocreateCGC

string - 如何将 String 转换为 UnsafePointer<UInt8> 和长度

当我使用NSOutputStream时的write方法funcwrite(_buffer:UnsafePointer,maxLengthlength:Int)->Int我不知道如何转换String至UnsafePointer和长度我怎样才能快速做到这一点? 最佳答案 您必须先将字符串转换为UTF-8数据letstring="foobar"letdata=string.dataUsingEncoding(NSUTF8StringEncoding,allowLossyConversion:false)!然后写入输出流letoutputS

string - 如何将 String 转换为 UnsafePointer<UInt8> 和长度

当我使用NSOutputStream时的write方法funcwrite(_buffer:UnsafePointer,maxLengthlength:Int)->Int我不知道如何转换String至UnsafePointer和长度我怎样才能快速做到这一点? 最佳答案 您必须先将字符串转换为UTF-8数据letstring="foobar"letdata=string.dataUsingEncoding(NSUTF8StringEncoding,allowLossyConversion:false)!然后写入输出流letoutputS

ios - Swift 中的 Int 到 UInt(反之亦然)位转换

我正在寻找一种直接的方法来将Int的位值转换为UInt,反之亦然。例如(为简单起见,使用8位整数)我想实现以下目标:letunsigned:UInt8=toUInt8(-1)//unsignedis255or0xffletsigned:Int8=toInt8(0xff)//signedis-1起初我想出了以下解决方案:letunsigned=unsafeBitCast(Int8(-1),UInt8.self)letsigned=unsafeBitCast(UInt8(0xff),Int8.self)但Apple在“unsafeBitCast()”文档中声明如下:..Caution::B

ios - Swift 中的 Int 到 UInt(反之亦然)位转换

我正在寻找一种直接的方法来将Int的位值转换为UInt,反之亦然。例如(为简单起见,使用8位整数)我想实现以下目标:letunsigned:UInt8=toUInt8(-1)//unsignedis255or0xffletsigned:Int8=toInt8(0xff)//signedis-1起初我想出了以下解决方案:letunsigned=unsafeBitCast(Int8(-1),UInt8.self)letsigned=unsafeBitCast(UInt8(0xff),Int8.self)但Apple在“unsafeBitCast()”文档中声明如下:..Caution::B

ios - 在 UInt 和 Int 之间快速转换

我有以下方法varphotos=[MWPhoto]=[MWPhoto]()funcnumberOfPhotosInPhotoBrowser(photoBrowser:MWPhotoBrowser!)->UInt{returnself.photos.count}funcphotoBrowser(photoBrowser:MWPhotoBrowser!,photoAtIndexindex:UInt)->MWPhotoProtocol!{returnself.photos[index]}然而,首先我得到IntisnotconversionbletoUInt(因为self.photos.cou

ios - 在 UInt 和 Int 之间快速转换

我有以下方法varphotos=[MWPhoto]=[MWPhoto]()funcnumberOfPhotosInPhotoBrowser(photoBrowser:MWPhotoBrowser!)->UInt{returnself.photos.count}funcphotoBrowser(photoBrowser:MWPhotoBrowser!,photoAtIndexindex:UInt)->MWPhotoProtocol!{returnself.photos[index]}然而,首先我得到IntisnotconversionbletoUInt(因为self.photos.cou

c# - 如何将 int 转换为 uint

我有int变量,值为820924当我试图这样转换它时:(uint)data[结构["MICROSECONDS"].Index]它不起作用。这也行不通unchecked((uint)data[structure["MICROSECONDS"].Index])我收到Specifiedcastisnotvalid.异常。数据存储对象,但在运行时我应该尝试转换为int。我几乎可以肯定。我打印的对象值是820924,但是我不知道如何打印对象类型,但它必须是int。代码:objectvalue=data[structure["MICROSECONDS"].Index];Console.WriteL