39

刚刚更新了 xcode 9 的 pod,我收到了Cosmos下面的错误。

在此处输入图像描述

类型“NSAttributedStringKey”(又名“NSString”)没有成员“字体”

4

7 回答 7

48

注意:确保项目的 swift 语言版本。这是您如何查看/检查您的 swift 语言版本的方法。

在此处输入图像描述


您有两个选项可以作为查询的解决方案:

  1. 如果您的项目有 Swift 版本 4.0
    - 您应该选择/下载与您项目的 swift 语言兼容的 POD(分享我 POD 信息和 swift 版本,以便我可以为您提供适合项目的 pod 库的确切 pod 版本)。

  2. 如果您的项目的 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

'

于 2017-10-02T06:28:12.830 回答
20
 attributes: [NSFontAttributeName: label.font]

swift 3.2 似乎没问题。我修复了分页菜单视图控制器库。

于 2017-10-24T04:10:26.137 回答
16

就我而言,我替换了此代码

[NSAttributedStringKey.font : font]

通过下面的代码

.size(attributes: [NSFontAttributeName : font])

希望能帮助到你。

于 2018-01-19T06:24:35.710 回答
11

您必须需要从 Xcode将swift 版本更新到 4.0 。

使用以下步骤

1)从项目管理器中选择您的项目(Xcode 左上角)
2)选择构建设置
3)搜索“Swift 语言”
4)更改“Swift 语言版本”=> Swift 4.0

于 2017-10-02T06:17:42.040 回答
1
let label = UILabel()
label.font = UIFont.preferredFont(forTextStyle: .subheadline)
于 2018-12-31T13:21:41.017 回答
0
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 中对我有用

于 2020-03-27T11:50:48.707 回答
-1

您的 pod 可能有错误的 swift 版本,而不是项目设置。

要更改 pod swift 设置,请进入文件导航器(屏幕左侧)到 Pods(蓝色图标),然后选择您遇到问题的 pod。然后转到构建设置并转到 Swift 语言版本。选择斯威夫特 4。

于 2018-04-16T14:33:56.817 回答