ios UInt 8从Swift到Objective-C

33qvvth1  于 2022-12-24  发布在  iOS
关注(0)|答案(1)|浏览(163)

我需要澄清一下。我正在Swift中学习Hash sha 256的教程,我的应用程序是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};
dsekswqp

dsekswqp1#

是的,如果你只是想在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类的unsignedCharValue属性(等效于Swift中的uint8Value)。

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

Source

相关问题