Ios [NSLocale preferredLanguages]是否返回空?

Ios [NSLocale preferredLanguages]是否返回空?,ios,iphone,Ios,Iphone,[NSLocale preferredLanguages]是否可能为空 我喜欢的语言有: NSString*preLang=[[NSLocale preferredLanguages]objectAtIndex:0]在类方法中 但有时(并非总是)应用程序会在这一行崩溃 我在我的应用程序中多次调用了[NSLocale preferredLanguages]。一些是实例内方法,两个是类内方法 类中的两个方法都随机崩溃 有什么问题吗 以下是崩溃日志: Exception Type: EXC_BAD_

[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),所以会发生崩溃

这将返回零而不是崩溃

替换

[[NSLocale preferredLanguages] objectAtIndex:0]


如果
-preferredLanguages
返回空数组,则
-firstObject
将返回nil,而不是引发异常,如
-objectAtIndex:

发布崩溃错误和崩溃堆栈跟踪。如果它返回nil,则不会发生崩溃。另一方面,如果它返回一个空数组,那么在超出数组边界寻址时就会出现错误。哦~它是空的,不是零。我已经附上了坠机日志。谢谢你有没有想过?我遇到了同样的问题!不,问题仍然存在。但是我试图减少调用[NSLocale preferredLanguages]的次数,并且有一些改进。
[[NSLocale preferredLanguages] firstObject]