这不是很好地使用异常和--try
块。你说如果标题是. 那么,您究竟希望您的应用程序做什么才能优雅地处理这种情况?根本不显示对话框?然后你可能会做类似的事情:catch
finally
nil
NSString *user = entry[@"user"][@"full_name"];
NSString *caption = text[@"caption"][@"text"];
if (caption != nil && caption != [NSNull null] && user != nil && user != [NSNull null]) {
RNBlurModalView *modal = [[RNBlurModalView alloc] initWithViewController:self title:user message:caption];
[modal show];
}
或者,如果这些是,您可能想展示其他内容nil
:
NSString *user = entry[@"user"][@"full_name"];
NSString *caption = text[@"caption"][@"text"];
if (caption == nil || caption == [NSNull null])
caption = @""; // or you might have @"(no caption)" ... whatever you want
if (user == nil || user == [NSNull null])
user = @"";
RNBlurModalView *modal = [[RNBlurModalView alloc] initWithViewController:self title:user message:caption];
[modal show];
或者,如果您有 的源代码RNBlurModalView
,也许您可以准确地诊断为什么它会在标题为 时生成异常nil
,并在那里解决该问题。
有很多可能的方法,具体取决于您希望应用程序在这些情况下做什么,但异常处理无疑不是正确的方法。作为Objective-C 编程指南的处理错误部分,异常是针对意料之外的“程序员错误”,而不是简单的逻辑错误,正如他们所说:
您不应该使用 try-catch 块来代替 Objective-C 方法的标准编程检查。