gpt4 book ai didi

ios - Swift 和 SecTrust

转载 作者:搜寻专家 更新时间:2023-10-30 22:13:05 24 4
gpt4 key购买 nike

我在尝试将我在 Apple 文档中找到的代码转换为 swift 代码时遇到了一些麻烦。准确的说是关于TSL和证书的东西……

https://developer.apple.com/library/mac/documentation/NetworkingInternet/Conceptual/NetworkingTopics/Articles/OverridingSSLChainValidationCorrectly.html

这是Objective-C中的原始代码

SecTrustResultType secresult = kSecTrustResultInvalid;
if (SecTrustEvaluate(trust, &secresult) != errSecSuccess)
return;
}

这是我的尝试...

var secresult:SecTrustResultType = kSecTrustResultInvalid // ERROR 1 
if (SecTrustEvaluate(trust, &secresult) != errSecSuccess) { // ERROR 2
return;
}

错误 1 ​​是:

'Int' is not convertible to 'SecTrustResultType'

错误 2 是:

 Could not find an overload for '!=' that accepts the supplied arguments

现在,我看到了 SecTrustResultTypeUInt32kSecTrustResultInvalid是一个 Int ...但是这个 header 是由 Apple 定义的,所以我认为它应该是正确的:P

typealias SecTrustResultType = UInt32
var kSecTrustResultInvalid: Int { get }

关于第二个错误,我真的不知道如何处理它,因为函数 SecTrustEvaluate返回 OSStatus (这是 UInt32 的别名)和 errSecSuccessOSStatus也。

我真的很困惑。你有什么建议让这些东西起作用吗?

最佳答案

我自己遇到了这个问题,头文档有点困惑,尤其是因为常量被定义为 Int 并且 SecTrustResultType 被定义为 UInt32

但好消息是,解决方案相当简单,只需使用 kSecTrustResultInvalid 初始化 SecTrustResultType:

var secresult = SecTrustResultType(kSecTrustResultInvalid)
if (SecTrustEvaluate(serverTrust, &secresult) != errSecSuccess){
return;
}

关于ios - Swift 和 SecTrust,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29940431/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com