iOS13 insertObject:atIndex:object 不能为 nil - 崩溃/错误



我有一个应用程序在iOS升级到13之前运行良好。 现在它崩溃了。该应用程序从数组中查找国家/地区代码,然后显示相关说明。

在 iOS13 中,当我们点击该视图时,我们会得到一个"*** -[__NSArrayM insertObject:atIndex:]:对象不能为零"崩溃

问题似乎与NSString stringWithFormat:@"%@-%@"如何提取数据有关。

例如,我可以用@"da-DK"这样的选项替换@"%@-%@"- 应用程序按预期执行,拉出"丹麦(丹麦("描述,并且不会崩溃。

代码如下 - 任何人都知道 iOS13 中可能发生了什么变化?谢谢。

+ (NSString *) getTTSDescForDisplay:(NSString *) voiceLanguage {
NSString *normalizedVoiceLanguage;
NSArray *array = [voiceLanguage componentsSeparatedByString:@"-"];
if ([array count] != 2) {
return nil;
} else {
NSString *first = array[0];
NSString *second = array[1];
normalizedVoiceLanguage = [NSString stringWithFormat:@"%@-%@",first.lowercaseString,second.uppercaseString];
}
NSDictionary *dict = @{
@"ar-SA"       :@"Arabic (Saudi Arabia) ",
@"cs-CZ"       :@"Czech (Czech Republic) ",
@"da-DK"       :@"Danish (Denmark) "                       
};
NSString *str = [dict objectForKey:normalizedVoiceLanguage];
return str;
}

OK在广泛中断后想通了。在上面的列表中,我缺少一个(新的?iOS13?(语言代码。

我添加了它...

@"en-IN"       :@"English (India) ",

这解决了这个问题。

最新更新