【问题标题】:UInt8 from Swift to Objective CUInt8 从 Swift 到 Objective C
【发布时间】:2018-11-18 13:15:43
【问题描述】:

我需要澄清一下。我正在关注 Swift 中的 Hash sha256 教程,而我的应用程序位于 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};

【问题讨论】:

    标签: ios objective-c swift uint


    【解决方案1】:

    是的,如果您只是想在 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

    【讨论】:

    • 我明白了......我是另一个方法的 Swift 等价帮助..这是我第一次使用 SHA256,我试图理解,但我们也理解等效的 C斯威夫特的镜头变得有点“复杂”。 ..我可以打扰你吗?这样你也可以告诉我我的 UInt8 实现是正确的
    • @kAiN 当然可以随时发布另一个问题,我可以尝试帮助您。同时,如果它解决了您最初的问题,请接受此答案。谢谢!
    • 当然!..我发布了另一个问题stackoverflow.com/questions/53361681/…....我接受你对这个问题的回答..谢谢ryanecrist
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多