代码之家  ›  专栏  ›  技术社区  ›  Glenn Posadas

Xcode不允许我为uiview使用nsObject的init()函数

  •  0
  • Glenn Posadas  · 技术社区  · 6 年前

    这可能非常类似于这个还未解决的问题: Xcode 10 beta2: Cannot invoke initializer for type 'UIView' with no arguments

    问题:

    无法为没有参数的类型“uiImageView”调用初始值设定项

    但请给我一个机会问这个问题。我有一个以前用Swift4.0编写的项目,突然Xcode不允许我 UIView 对象与 NSObject init() 方法。突然之间。

    我已经做了:

    1. 我改回了一个工作承诺,但是,这个项目仍然无法编译。
    2. 当然,我试着编译我的其他项目,当然,它们是在有这么多视图的情况下编译的。 UIView() .
    3. 尝试搜索答案,但上面链接的问题仍然没有答案。
    4. 当前正在比较此项目的项目设置与新项目的。

    我想问的和想知道的:

    1. 我需要知道,因为这很麻烦,为什么会发生。
    2. 这是Xcode中的配置错误吗?但我不知怎么地怀疑这一点,因为我已经切换到工作提交,它仍然有编译时错误。

    请不要叫我用 UIView(frame: CGRect) 建设者,因为我有数百个 uiview()。 代码和类似代码。

    我所知道的:

    Where does UIView.init() come from?

    请记住,uiview是一个objective-c类,而objective-c是 不快。没有关于指定和方便的规则 初始值设定项及其继承规则存在于objective-c_ 在使用时有时会导致严重问题的事实 在斯威夫特上课。也就是说,实际上,uiview的init()是 调用init(frame:.zero)的便利初始值设定项。

    谢谢!

    1 回复  |  直到 6 年前
        1
  •  0
  •   Glenn Posadas    6 年前

    要关闭此线程/问题,我将添加一个答案。

    我不是解决这个问题的人。这个项目,如果在问题中没有提到,只是一个从远程/自由职业工作的副项目。实际上,如果上面没有提到的话,我已经将项目迁移到Swift4.2了。一路上,这个问题出现了。我没有费心在更新期间重命名所有要重命名的代码。长话短说,我放弃了这项任务一点,但公司里有人决定解决它。

    解决方案是: 先完成迁移 . 只需重命名Swift4.2所需的所有内容,并更新pods。就是这样!:)我希望这能帮助未来的人们。