类型“UIPageViewController.OptionsKey”(又名“NSString”)没有成员“interPageSpacing”

Posted

技术标签:

【中文标题】类型“UIPageViewController.OptionsKey”(又名“NSString”)没有成员“interPageSpacing”【英文标题】:Type 'UIPageViewController.OptionsKey' (aka 'NSString') has no member 'interPageSpacing' 【发布时间】:2019-06-04 08:50:02 【问题描述】:

我不知道 Xcode 是怎么回事。我想在我的一个公司项目中使用初始化程序创建一个UIPageViewController

init(transitionStyle style: UIPageViewController.TransitionStyle,
     navigationOrientation: UIPageViewController.NavigationOrientation, 
     options: [UIPageViewController.OptionsKey : Any]? = nil)

但是 Xcode 不断给出这个错误信息。

这是我的代码:

let vc = UIPageViewController(transitionStyle: .scroll, 
                              navigationOrientation: .vertical, 
                              options: [UIPageViewController.OptionsKey.interPageSpacing: 10])

同时,在我刚刚从模板Page-based App(如下所示)创建的新演示项目中,它的构建没有任何错误。

如何修复/绕过它?

【问题讨论】:

我的解决方案是将 Build Setttings 中的 Swift Language Version4.0 更改为 5.04.2。请注意,这样做意味着您必须迁移到 5.04.2 【参考方案1】:

Swift 4 中的语法有所不同。您当前的项目可能在 Swift 4.0 中。将其 swift 版本更改为 4.2 及更高版本。或者使用下面的代码

init(transitionStyle style: UIPageViewControllerTransitionStyle, 
    navigationOrientation: UIPageViewControllerNavigationOrientation, 
    options: [String : Any]? = nil) 

Swift 4.0

let vc = UIPageViewController(transitionStyle: .scroll,
                                      navigationOrientation: .vertical,
                                      options: [UIPageViewControllerOptionInterPageSpacingKey : 10])

Swift 4.2 及更高版本

let vc = UIPageViewController(transitionStyle: .scroll, 
                              navigationOrientation: .vertical, 
                              options: [UIPageViewController.OptionsKey.interPageSpacing : 10])

【讨论】:

以上是关于类型“UIPageViewController.OptionsKey”(又名“NSString”)没有成员“interPageSpacing”的主要内容,如果未能解决你的问题,请参考以下文章

c#中值类型和引用类型的区别

MySQl数据类型

值类型和引用类型

TS 基本类型分类any 类型

MySQL数据类型 - 数字类型 - 数字类型语法

js简单类型与复杂类型