Код: Выделить всё
Optional()
, но каким -то образом я не могу получить доступ к этим свойствам из объекта SeckeyRef (я могу видеть только весь объект в консоли; например, я не могу сделать SeckeyRef.modulus или что -либо из -за этого, это кажется, это не так. />
Мой вопрос: как я могу получить доступ к seckeyref.modulus < /code> или альтернативно, преобразовать это seckeyref < /code> nsdata < /code> или что -то подобное? /> Я создаю свой SeckeyRef < /code> динамически, через эту функцию: < /p>
Код: Выделить всё
func bytesToPublicKey(certData: NSData) -> SecKeyRef? {
guard let certRef = SecCertificateCreateWithData(nil, certData) else { return nil }
var secTrust: SecTrustRef?
let secTrustStatus = SecTrustCreateWithCertificates(certRef, nil, &secTrust)
if secTrustStatus != errSecSuccess { return nil }
var resultType: SecTrustResultType = UInt32(0) // result will be ignored.
let evaluateStatus = SecTrustEvaluate(secTrust!, &resultType)
if evaluateStatus != errSecSuccess { return nil }
let publicKeyRef = SecTrustCopyPublicKey(secTrust!)
return publicKeyRef
}
Edit 2
(comments on existing answers as of 7 January 2015) < /p>
Это не работает: < /p>
Код: Выделить всё
let mirror = Mirror(reflecting: mySecKeyObject)
for case let (label?, value) in mirror.children {
print (label, value)
}
< /code>
Это приводит к этому выводу в консоли: < /p>
Some
Кроме того, mirror.descendend («exponent») (или «модуль») приводит к тому, что мы не получают , даже если при печати необработанного объекта в консоле, я отчетливо вижу, что эти моменты существуют, и они есть, что они есть, и они есть, что они есть, и они есть, что они есть. />
Кроме того, если это вообще возможно, я хотел бы избежать необходимости сохранять в ключевой матче, читать как nsdata < /code>, а затем удалять из ключичной < /strong>. Как указано в описании щедрости, если это единственный способ, пожалуйста, укажите авторитетную ссылку. Спасибо за все ответы, предоставленные до сих пор.
Подробнее здесь: https://stackoverflow.com/questions/344 ... t-in-swift
Мобильная версия