gpt4 book ai didi

ios - 快速捕获无效用户输入的异常

转载 作者:行者123 更新时间:2023-11-30 12:06:08 26 4
gpt4 key购买 nike

我正在尝试这个计算器代码。如何处理无效的用户输入?

//答案:到 Objective-C 的桥接 header //https://github.com/kongtomorrow/TryCatchFinally-Swift

这是同样的问题,但在 objc 中,但我想在 swift 中执行此操作。 Catching NSInvalidArgumentException from NSExpression

我想要显示的只是一条消息(如果它不起作用),但现在当用户未输入正确的格式时我会收到异常。

import Foundation

var equation:NSString = "60****2" // This gives a NSInvalidArgumentException',
let expr = NSExpression(format: equation) // reason: 'Unable to parse the format string
if let result = expr.expressionValueWithObject(nil, context: nil) as? NSNumber {
let x = result.doubleValue
println(x)
} else {
println("failed")
}

最佳答案

更多“Swifty”解决方案:

@implementation TryCatch

+ (BOOL)tryBlock:(void(^)())tryBlock
error:(NSError **)error
{
@try {
tryBlock ? tryBlock() : nil;
}
@catch (NSException *exception) {
if (error) {
*error = [NSError errorWithDomain:@"com.something"
code:42
userInfo:@{NSLocalizedDescriptionKey: exception.name}];
}
return NO;
}
return YES;
}

@end

这将生成 Swift 代码:

class func tryBlock((() -> Void)!) throws

您可以将它与 try 一起使用:

do {
try TryCatch.tryBlock {
let expr = NSExpression(format: "60****2")
...
}
} catch {
// Handle error here
}

关于ios - 快速捕获无效用户输入的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46658556/

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