UInt8 от Swift до цели C - PullRequest
       41

UInt8 от Swift до цели C

0 голосов
/ 18 ноября 2018

Мне нужно разъяснение.Я следую учебному пособию по Hash sha256 в Swift , а мое приложение в Objective C .У меня проблемы с переводом этого UInt8 в Цель c.Каков эквивалент в 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};

1 Ответ

0 голосов
/ 18 ноября 2018

Да, то, что вы опубликовали выше, будет работать, если вы просто хотите использовать примитивный массив в 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
];

Чтобы получить эквивалентное значение UInt8 из элементов NSNumber, используйте свойство unsignedCharValueкласс NSNumber (что эквивалентно uint8Value в Swift).Например:

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

Источник

...