gpt4 book ai didi

ios - [NSLocale preferredLanguages] 是否返回空值?

转载 作者:可可西里 更新时间:2023-11-01 03:34:28 25 4
gpt4 key购买 nike

[NSLocale preferredLanguages] 是否有可能为空?

我得到的首选语言如下:

NSString* preLang = [[NSLocale preferredLanguages] objectAtIndex:0] 在类方法中。

但有时(并非总是)应用会在这一行崩溃。

我在我的应用程序中多次调用了[NSLocale preferredLanguages]。有些在实例方法中,两个在类方法中。

并且类方法中的两个都随机崩溃。

有什么问题?

这是崩溃日志:

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x00000000000007d8
Triggered by Thread: 0

Thread 0 Crashed:
0 libobjc.A.dylib 0x399c0911 realizeClass(objc_class*) + 21
1 libobjc.A.dylib 0x399c09d7 realizeClass(objc_class*) + 219
2 libobjc.A.dylib 0x399c2793 lookUpImpOrForward + 71
3 libobjc.A.dylib 0x399bb027 _class_lookupMethodAndLoadCache3 + 31
4 libobjc.A.dylib 0x399badf7 _objc_msgSend_uncached + 23
5 CoreFoundation 0x2f58f607 CFArrayAppendValue + 127
6 CoreFoundation 0x2f5dc477 CFLocaleCopyPreferredLanguages + 155
7 CoreFoundation 0x2f5e417d +[NSLocale preferredLanguages] + 5

谢谢

最佳答案

问题不是它返回 nil 而是返回一个空数组。因为 NSArray 会为越界访问抛出异常(而不是像它应该的那样 nil),所以你会崩溃。

这将返回 nil 而不是崩溃。

替换

[[NSLocale preferredLanguages] objectAtIndex:0]

[[NSLocale preferredLanguages] firstObject]

如果 -preferredLanguages 返回空数组,则 -firstObject 将返回 nil 而不是像 -objectAtIndex: 那样抛出异常。

关于ios - [NSLocale preferredLanguages] 是否返回空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22510525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com