iOS13 insertObject:atIndex: 对象不能为 nil - 崩溃/错误
iOS13 insertObject:atIndex: object cannot be nil - crash / error
我有一个应用程序在 iOS 升级到 13 之前运行良好,但现在崩溃了。该应用程序从数组中查找国家代码,然后显示相关描述。
在 iOS13 中,当我们点击该视图时,我们会遇到“*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil' 崩溃
问题似乎与 NSString stringWithFormat:@"%@-%@"
提取数据的方式有关。
例如,我可以将 @"%@-%@"
替换为 @"da-DK"
之类的选项 - 应用程序按预期执行,提取 "Danish (Denmark) " 描述,并且不会崩溃。
代码如下 - 任何人都知道 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) ",
这解决了问题。
我有一个应用程序在 iOS 升级到 13 之前运行良好,但现在崩溃了。该应用程序从数组中查找国家代码,然后显示相关描述。
在 iOS13 中,当我们点击该视图时,我们会遇到“*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil' 崩溃
问题似乎与 NSString stringWithFormat:@"%@-%@"
提取数据的方式有关。
例如,我可以将 @"%@-%@"
替换为 @"da-DK"
之类的选项 - 应用程序按预期执行,提取 "Danish (Denmark) " 描述,并且不会崩溃。
代码如下 - 任何人都知道 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) ",
这解决了问题。