类型'NSAttributedStringKey'(又名'NSString')没有成员'font'

时间:2017-10-02 06:12:39

标签: ios swift3 cocoapods nsattributedstring cosmos

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

enter image description here

  

输入'NSAttributedStringKey'(又名'NSString')没有成员'font'

7 个答案:

答案 0 :(得分:42)

注意:确保项目的swift语言版本。以下是您查看/检查快速语言版本的方法。

enter image description here


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

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

  2. 如果您的项目的版本低于4.0
    - 您需要将项目迁移到Swift 4.0(如果您没有迁移它)。这是ref问题和答案,如何从swift(下面)< 4.0迁移到4.0。


  3. 根据您在问题中添加的标签 - Swift3是您当前的项目语言版本和pod'Cosmos','〜> 12.0'支持swift 4。

    pod 'Cosmos', '~> 12.0'
    

    以下是支持低于4.0的Swift版本的上一版本列表。

    https://github.com/evgenyneu/Cosmos/releases

    尝试以前发布的cosmos:

    pod 'Cosmos', '~> 11.0.3'
    // or
    pod 'Cosmos', '~> 11.0.1'
    // or
    pod 'Cosmos', '~> 11.0.0
    

答案 1 :(得分:19)

 attributes: [NSFontAttributeName: label.font]

使用swift 3.2似乎没问题。 我修改了分页菜单viewcontroller库。

答案 2 :(得分:14)

在我的情况下 我替换此代码

[NSAttributedStringKey.font : font]

下面的代码

.size(attributes: [NSFontAttributeName : font])

希望它有所帮助。

答案 3 :(得分:11)

您必须从Xcode更新 swift version to 4.0

使用以下步骤

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

答案 4 :(得分:1)

let label = UILabel()
label.font = UIFont.preferredFont(forTextStyle: .subheadline)

答案 5 :(得分:0)

access_token

这在4.2版本中对我有效

答案 6 :(得分:-1)

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

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