gpt4 book ai didi

ios - NSLocale NSLocaleCalendar 导致 EXC_BAD_ACCESS

转载 作者:可可西里 更新时间:2023-11-01 02:17:30 35 4
gpt4 key购买 nike

我正在使用以下文档 - https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSLocale_Class/index.html#//apple_ref/occ/clm/NSLocale/localeIdentifierFromComponents :

如果链接没有跳转到页面的正确部分,请查找 localeIdentifierFromComponents(_:)

XCode 7.2 Playground

print(NSLocale.localeIdentifierFromComponents([
NSLocaleLanguageCode:"en",
NSLocaleCountryCode:"US",
NSLocaleCalendar: NSJapaneseCalendar
]))
//EXC_BAD_ACCESS

鉴于

print(NSLocale.localeIdentifierFromComponents([
NSLocaleLanguageCode:"en",
NSLocaleCountryCode:"US",
]))
//"en_US"

如果我用逆运算

print(NSLocale.componentsFromLocaleIdentifier("en_US@calendar=japanese"))
//["kCFLocaleCountryCodeKey": "US", "kCFLocaleLanguageCodeKey": "en", "calendar": "japanese"]

NSLocaleCalendar 映射到 kCFLocaleCalendarKey,而不是“日历”

那么我做错了什么还是文档错了?

最佳答案

我会说文档是错误的(您使用的是他们使用的确切示例),或者更可能是 Foundation(Xcode 7.2.1、Swift 2)中的一个实际错误,至少是 Swift 访问它- 这并不能确认 Objective-C 访问是否有效(尽管我猜它们是相同的)。

我建议提交 bug report .

这是我的 Playground 来确认你的错误。即使使用公历,它也在爆炸式增长。

//: Playground - noun: a place where people can play

import Foundation

let ident = NSLocale.localeIdentifierFromComponents([
NSLocaleLanguageCode:"en",
NSLocaleCountryCode:"US",
])

NSGregorianCalendar
NSJapaneseCalendar

NSLocale.componentsFromLocaleIdentifier("en_US")
NSLocale.componentsFromLocaleIdentifier("en_US@calendar=japanese")

let ident2 = NSLocale.localeIdentifierFromComponents([
NSLocaleLanguageCode:"en",
NSLocaleCountryCode:"US",
NSLocaleCalendar:NSGregorianCalendar // causing EXC_BAD_ACCESS
])

关于ios - NSLocale NSLocaleCalendar 导致 EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35587839/

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