首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有Swift 4/Xcode 10的Facebook :参数类型'SDKLoggingBehavior?‘不符合预期类型的“序列”

带有Swift 4/Xcode 10的Facebook :参数类型'SDKLoggingBehavior?‘不符合预期类型的“序列”
EN

Stack Overflow用户
提问于 2018-11-04 19:11:01
回答 2查看 1K关注 0票数 3

我正在重温一个旧的项目(用Swift 3构建,现在使用Swift 4),看起来Facebook SDK有一些问题。

我搜索了最初的问题,并找到了一个解决方案这里,建议添加到我的pod文件:

代码语言:javascript
运行
复制
post_install do |installer|
    installer.pods_project.targets.each do |target|
        if ['FacebookCore', 'FacebookLogin'].include? target.name
            target.build_configurations.each do |config|
                config.build_settings['SWIFT_VERSION'] = '3.2'
            end
        end
    end
end

这是完整的podfile

pod install和运行项目之后,它似乎清除了我以前的错误,但是我仍然在第151行return Set(behaviors)上看到了Pods>Pods>FacebookCore>SDKSettings.swift>enabledLoggingBehaviors中的一个错误。

错误是(图片):

Argument type 'SDKLoggingBehavior?' does not conform to expected type 'Sequence'

我不知道如何处理这个错误,有人知道如何修复这个错误以使Facebook再次工作吗?

提前感谢您的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-19 06:55:23

内部SDKSetting.swift

将enabledLoggingBehaviors函数替换为

代码语言:javascript
运行
复制
public static var enabledLoggingBehaviors: Set<SDKLoggingBehavior> {
    get {
      let behaviors = FBSDKSettings.loggingBehavior().compactMap { object -> SDKLoggingBehavior? in
        if let value = object as? String {
          return SDKLoggingBehavior(sdkStringValue: value)
        }
        return nil
      }
      return Set(behaviors)
    }
    set {
      let behaviors = newValue.map({ $0.sdkStringValue })
      FBSDKSettings.setLoggingBehavior(Set(behaviors))
    }
  }

希望能帮上忙。

票数 4
EN

Stack Overflow用户

发布于 2019-10-31 11:04:44

flatMap替换为compactMap,仅此而已。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53144404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档