草庐IT

c# - 在 c# 中,这个快速 Uint8 转换的等价物是什么?

我正在尝试在C#中转换这个快速片段,但我有点困惑。基本上,我需要这个函数来从信标获取测距数据,如下所示:https://github.com/google/eddystone/tree/master/eddystone-uidfuncgetTxPower(frameData:NSData)->Int{letcount=frameData.lengthvarframeBytes=[UInt8](repeating:0,count:count)frameData.getBytes(&frameBytes,length:count)lettxPower=Int(Int8(bitPattern

ios - 如何将 UInt32 转换为 UInt8

我需要快速将UInt32附加到NSMutableData对象。问题是,我不知道如何访问int中的特定字节。这是我尝试过的:extensionNSMutableData{enumEndianness{caseLittleEndian,BigEndian}funcappendUInt32(myInt:UInt32,endianness:Endianness=.LittleEndian){varbytes=UInt8[]()foriin0..sizeof(UInt32){switchendianness{case.LittleEndian:bytes.append(UInt8(myInt>>

swift - 二元运算符 '|' 不能应用于类型 'Int' 和 'UInt8' 的操作数

我希望在2个位图上执行简单的或逻辑,但Swift认为这是错误的:letu:UInt8=0b1leti:Int=0b10i|u//Binaryoperator'|'cannotbeappliedtooperandsoftype'Int'and'UInit8'有什么方法可以符合类型推断并仍然有效吗?我总能做到i|Int(u)//3但我认为这不是最优的。 最佳答案 Swift的基本原则之一是它不会隐式地类型之间的转换。letu:UInt8=0b1leti:Int=0b10i|Int(u)迫使您考虑必要的转换以及结果应具有的类型,所以是正确

ios - 二元运算符 '/' 不能应用于两个 'UInt32' 操作数

这是我的代码。varframeCount=INT_MAX...lettotalSize:UInt32=4096letitemSize:UInt32=64frameCount=totalSize/itemSize我收到“二元运算符‘/’不能应用于两个‘UInt32’操作数”错误消息。是真的不可能还是我错过了什么? 最佳答案 错误消息有点误导。INT_MAX定义为publicvarINT_MAX:Int32{get}所以varframeCount=INT_MAXframeCount被定义为Int32类型的变量。totalSize/ite

ios - 如何将 HEX 字符串转换为 UInt16?

我有一个十六进制字符串d285,我想将它转换为UInt16,请指导我如何转换它。这个我试过了letbuffer=UInt16("\(UInt8(text,radix:16)!)")returnData(bytes:(buffer?.bigEndian.toBytes)!)但是没用 最佳答案 UInt16有一个initializer它采用字符串和基数值。这可用于从字符串创建UInt16。lethexString="d285"lethexToInt=UInt16(hexString,radix:16)//prints53893

ios - Swift 中的 NSGlyph 到 CGGlyph(UInt32 到 UInt16)

如何从NSGlyph转换为CGGlyph?letctGlyph=glyphasCGGlyph我看到了:typealiasCGGlyph=CGFontIndextypealiasCGFontIndex=UInt16typealiasNSGlyph=UInt32那么我该如何进行类型转换呢?我试过:letctGlyph=glyphasCGGlyph但它给了我:error:'NSGlyph'isnotconvertibleto'CGGlyph' 最佳答案 你不能转换,但你可以使用初始化器:letctGlyph=CGGlyph(glyph)

iphone - 无法将类型 'SecTrustResultType' 的值转换为预期的参数类型 'UInt32'

尝试在Xcode8.0中运行Swift2.3代码varresult=SecTrustResultType(rawValue:SecTrustResultType.Invalid) 最佳答案 Invalid是enumSecTrustResultType的一种情况,但是SecTrustResultType(rawValue:)需要底层的值“原始类型”,在本例中为UInt32。所以这会编译varresult=SecTrustResultType(rawValue:SecTrustResultType.Invalid.rawValue)但这

arrays - 快速编码 UInt8

为什么可以使用aCoder.encodeObject(myIntArray,forKey:"myKey")对Int数组进行编码,但在尝试编码时出现编译器错误UInt8值数组?转换实际上并不显着,但我会有56个不必要的位来编码...... 最佳答案 encodeObject(_:forKey:)在NSCoder中接受AnyObject?类型:funcencodeObject(_objv:AnyObject?,forKeykey:String)因此,如果您将Int数组传递给encodeObject,它会隐式转换为NSNumber的NSA

swift - 如何创建一个包含 `Array<Int>` 或 `UnsafePointer<UInt8>` 的类型

我正在对Swift与Objective-C进行一些性能测试。我创建了一个MacOS混合Swift/Objective-C项目,该项目使用Swift或Objective-C创建大量素数。它有一个不错的用户界面,并以清晰的显示方式显示结果。如果你有兴趣,可以在Github上查看该项目。它叫做SwiftPerformanceBenchmark.Objective-C代码使用malloc的C整数数组,Swift代码使用Array对象。因此,ObjectiveC代码要快得多。我读过有关使用如下代码围绕字节缓冲区创建类似数组的包装器的信息:letsize=10000var ptr = Unsafe

swift - 将 Int 转换为 UnsafePointer<UInt8>

我正在为iOS设备上的应用快速创建一个TCP客户端。我正在使用NSOuputStream在服务器上发送数据。我们的协议(protocol)是JSON类型,我们必须首先发送json的长度(unsignedInt32位),然后发送JSON内容(作为UTF8字符串)。一切正常,除了我找不到如何使用write(_:maxLength:)编写我的IntNSOutputStream的函数..将我的JSON字符串转换为UnsafePointer我使用以下内容//varjson:StringletencodedData=[UInt8](json.utf8)letresult=outputStream?