在 objective-c 中,我们使用 try catch 来停止崩溃,例如
- (void)viewDidLoad {
[super viewDidLoad];
tableData = [NSArray arrayWithObjects:@"Egg Benedict", @"Mushroom Risotto", @"Full Breakfast", @"Hamburger", @"Ham and Egg Sandwich", @"Creme Brelee", @"White Chocolate Donut", @"Starbucks Coffee", @"Vegetable Curry", @"Instant Noodle with Egg", @"Noodle with BBQ Pork", @"Japanese Noodle with Pork", @"Green Tea", @"Thai Shrimp Cake", @"Angry Birds Cake", @"Ham and Cheese Panini", nil];
@try {
NSLog(@"%@",tableData[1000]);
} @catch (NSException *exception) {
NSLog(@"%@",exception);
}
}
但是当我使用 swift 3 时,显示警告并且应用程序崩溃
任何人都可以解释一下,我该如何阻止它。我从谷歌阅读了一些主题但无法理解。谁能帮帮我。
最佳答案
Swift 数组实现了一个下标以便于访问它的成员。下标不能抛出。您可以实现 Collection 协议(protocol)的扩展,并创建一个抛出函数,如果索引低于 Collection 的 (.count-1),则获取该成员,或者如果它高于,则抛出错误。
或者,您可以实现一个返回常量的下标,然后防范该常量,并在防范的 else 语句中抛出错误(但除非您在该 do block 中有 try 语句,否则它将是有点语法脂肪)。
关于swift - 如何使用 try catch 停止在 swift3 中崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45116688/