iOS13 insertObject:atIndex:对象不能为零-崩溃/错误

问题描述 投票:0回答:1

我有一个在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;
}
ios objective-c nsstring nsarray nsdictionary
1个回答
0
投票

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

我添加了...

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

并且此问题已解决。

© www.soinside.com 2019 - 2024. All rights reserved.