我有一个应用程序在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) ",
这解决了这个问题。