我有一个在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) ",
并且此问题已解决。