gpt4 book ai didi

ios - 在 iOS 中将错误代码转换为文本

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:16:45 25 4
gpt4 key购买 nike

我有一个使用 CommonCryptor 进行加密和解密的包装器。偶尔解密过程会失败,在这种情况下我会填写这样的错误:

if (result == kCCSuccess) {
cipherData.length = outLength;
} else {
if (error) {
*error = [NSError errorWithDomain:kBridgeEncryptorErrorDomain
code:result
userInfo:nil];
}

return nil;
}

然后我像这样记录错误:

if (error != nil) {
DDLogError(@"Decrypt fail %i, %@", [error code], [error localizedDescription]);
}

但是,这最终会生成如下字符串:

2013-01-09 09:15:19.753 [BridgeEncrypter decryptDataFromData:] [Line 83] E: Decrypt fail -4304, The operation couldn’t be completed. (com.***.bridgecrypt error -4304.)

其中 -4304 可能是 CommonCryptor.h 中的任何错误代码(-4300 至 -4305)。是否有将错误代码映射到它们的字符串值的好方法,或者我是否需要有一个手动调整字符串的 switch 语句?如果我确实必须依赖于 switch,最好的做法是将它放在记录问题或生成错误的地方吗?

最佳答案

我不确定您要在这里寻找什么。我不熟悉 CommonCryptor 或其中处理错误消息的方式。

我可以建议您依靠 NSError 及其 userInfo 和 NSLocalized*Key 特性。

例如,如果您在 userInfo 字典中设置了一个 NSLocalizedDescriptionKey,则错误:

NSDictionary userInfo = @{
NSLocalizedDescriptionKey : @"This is the error message I want users to see"
};
*error = [NSError errorWithDomain:kBridgeEncryptorErrorDomain
code:result
userInfo:userInfo];

那么This is the error message I want users to see就是-localizedDescription返回的字符串。然后调用代码可以使用该字符串向用户显示一条消息,而无需重新解释它。

关于如何将错误代码链接到您希望用户看到的消息的问题,可以使用 CommonCryptor 函数将错误代码转换为人类可读的字符串。如果没有,那么您可以自己编写。我建议使用开关。

NSString *MyCodeToLocalizedDescription(CCCryptorStatus cryptorStatus)
{
switch(cryptorStatus) {
case kCCDecodeError: return @"This is the error message I want users to see";

default: return @"Oh noes, unknown error";
}
}

此时设置错误为:

NSDictionary userInfo = @{
NSLocalizedDescriptionKey : MyCodeToLocalizedDescription(result)
};
*error = [NSError errorWithDomain:kBridgeEncryptorErrorDomain
code:result
userInfo:userInfo];

关于ios - 在 iOS 中将错误代码转换为文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14238287/

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