如何在 Swift 2.3 中将 UInt8 转换为 Anyobject

Posted

技术标签:

【中文标题】如何在 Swift 2.3 中将 UInt8 转换为 Anyobject【英文标题】:How to Convert UInt8 to Anyobject in Swift 2.3 【发布时间】:2016-10-18 10:06:24 【问题描述】:

我正在尝试 CryptoSwift,我尝试将 UInt8 转换为 Anyobject。

如何转换

让加密:[UInt8]!

        encrypted = try AES(key: value, iv: iv, blockMode: .CBC, padding: PKCS7()).encrypt(myArray)

    let mynObject:AnyObject = encrypted as! AnyObject

无法将“Swift.Array>”(0x11a6062e8)类型的值转换为“Swift.AnyObject”(0x119d3d018)。

感谢任何人的帮助

谢谢

【问题讨论】:

显示您的代码。 @vadian:我更新问题 最好避免使用 CryptoSwift,除此之外,它比基于 Common Crypto 的实现慢 500 到 1000 倍。 Apple 的 Common Crypto 已通过 FIPS 认证,因此经过严格审查,使用 CryptoSwift 在正确性和安全性方面是有机会的。 参见 SO 文档中的 AES encryption in CBC mode 以获取示例代码。 【参考方案1】:

示例

let anInt:UInt8 = 20
let anObject:AnyObject = anInt as AnyObject

您要注意的关键部分是anInt as AnyObject,这是您将 Uint8 转换为 AnyObject 的方式。

【讨论】:

这里为什么需要as!?这种向上转型总是会成功的。 谢谢,我更新了这个问题。你能帮忙吗 因为 OP 没有上传他的代码,如果变量没有类型,这会更安全。但现在我知道它确实删除了!谢谢:)

以上是关于如何在 Swift 2.3 中将 UInt8 转换为 Anyobject的主要内容,如果未能解决你的问题,请参考以下文章

在Swift中将bytes / UInt8数组转换为Int

swift 在swift中将uint8转换为字符串

在 Swift 中将两个字节的 UInt8 数组转换为 UInt16

如何在 Swift 3 中将 [UInt8] 数组复制到 C 指针?

在 Swift 中将有符号转换为无符号

如何在 C++ 中将 uint8_t 的向量转换为 std::string?