刚刚更新了 xcode 9 的 pod,我收到了Cosmos下面的错误。
类型“NSAttributedStringKey”(又名“NSString”)没有成员“字体”
注意:确保项目的 swift 语言版本。这是您如何查看/检查您的 swift 语言版本的方法。
您有两个选项可以作为查询的解决方案:
如果您的项目有 Swift 版本 4.0
- 您应该选择/下载与您项目的 swift 语言兼容的 POD(分享我 POD 信息和 swift 版本,以便我可以为您提供适合项目的 pod 库的确切 pod 版本)。
如果您的项目的 Swift 版本低于 4.0
- 您需要将项目迁移到 Swift 4.0(如果您尚未迁移它)。这是参考问答,如何从 swift(下)<4.0 迁移到 4.0。
根据您在问题中添加的标签 - Swift3 是您当前的项目语言版本,pod 'Cosmos', '~> 12.0' 支持 swift 4。
pod 'Cosmos', '~> 12.0'
以下是支持 Swift 4.0 以下版本的先前版本列表。
https://github.com/evgenyneu/Cosmos/releases
尝试以前版本的 cosmos,例如:
pod 'Cosmos', '~> 11.0.3'
// or
pod 'Cosmos', '~> 11.0.1'
// or
pod 'Cosmos', '~> 11.0.0
'
attributes: [NSFontAttributeName: label.font]
swift 3.2 似乎没问题。我修复了分页菜单视图控制器库。
就我而言,我替换了此代码
[NSAttributedStringKey.font : font]
通过下面的代码
.size(attributes: [NSFontAttributeName : font])
希望能帮助到你。
您必须需要从 Xcode将swift 版本更新到 4.0 。
使用以下步骤
1)从项目管理器中选择您的项目(Xcode 左上角)
2)选择构建设置
3)搜索“Swift 语言”
4)更改“Swift 语言版本”=> Swift 4.0
let label = UILabel()
label.font = UIFont.preferredFont(forTextStyle: .subheadline)
let percentOff = NSMutableAttributedString(string: "\(productOff ?? "0")%OFF",
attributes: [NSFontAttributeName: UIFont(name: "Montserrat-Regular",
size: 13)!,NSForegroundColorAttributeName: UIColor.black,
NSBackgroundColorAttributeName: UIColor.black])
lblPriceDetail.attributedText = percentOff
这在 swift 4.2 中对我有用
您的 pod 可能有错误的 swift 版本,而不是项目设置。
要更改 pod swift 设置,请进入文件导航器(屏幕左侧)到 Pods(蓝色图标),然后选择您遇到问题的 pod。然后转到构建设置并转到 Swift 语言版本。选择斯威夫特 4。