UInt8 从 Swift 到 Objective C

UInt8 from Swift to Objective C

我需要澄清一下。我正在学习 Hash sha256 中的 Swift 教程,我的应用程序在 Objective C 中。我在 Objective c 中翻译此 UInt8 时遇到问题。 Objective C 中的等价物是什么?

let rsa2048Asn1Header:[UInt8] = [
        0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
        0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00
    ]

我试过了,但不确定是否正确我想确认一下

UInt8 rsa2048AsnlHeader[] = {
         0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
                 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00};

是的,如果您只是想在 Objective-C 中使用原始数组,那么您上面发布的内容将有效。

另一种选择是使用 NSArray,如下所示:

NSArray<NSNumber *> *rsa2048AsnlHeader = @[
    @0x30, @0x82, @0x01, @0x22, @0x30, @0x0d, @0x06, @0x09, @0x2a, @0x86, @0x48, @0x86,
    @0xf7, @0x0d, @0x01, @0x01, @0x01, @0x05, @0x00, @0x03, @0x82, @0x01, @0x0f, @0x00
];

要从 NSNumber 元素中获取等效的 UInt8 值,请使用 NSNumber class 的 unsignedCharValue 属性(其中等同于 Swift 中的 uint8Value)。例如:

for (NSNumber *value in rsa2048AsnlHeader) {
    UInt8 uint8Value = value.unsignedCharValue;
    // ...
}

Source