gpt4 book ai didi

ios - Xcode 不允许我对 UIView 使用 NSObject 的 init() 函数

转载 作者:行者123 更新时间:2023-11-30 11:01:22 24 4
gpt4 key购买 nike

它可能与这个仍然悬而未决的问题非常相似:Xcode 10 beta2: Cannot invoke initializer for type 'UIView' with no arguments

问题:

Cannot invoke initializer for type 'UIImageView' with no arguments

但是请给我一个机会问这个问题。我有一个以前用 Swift 4.0 编写的项目,突然 Xcode 不允许我使用 NSObjectinit() 创建一个 UIView 对象> 方法。只是突然间。

我已经做了什么:

  1. 我切换回工作提交,天哪,项目仍然无法编译。
  2. 当然,我尝试编译其他项目,当然,它们在编译时会使用 UIView() 构建如此多的 View 。
  3. 尝试搜索答案,但上面链接的问题仍然没有答案。
  4. 目前正在将此项目的项目设置与新项目的项目设置进行比较。

我想问和想知道的事情:

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

请不要告诉我使用 UIView(frame: CGRect) 构造函数,因为我有数百个 UIView() 代码以及类似的代码。

我所知道的:

Where does UIView.init() come from?

Keep in mind that UIView is an Objective-C class, and Objective-C is not Swift. None of the rules about designated and convenience initializers and the rules of their inheritance exist in Objective-C — a fact that can sometimes cause significant trouble when using those classes in Swift. That said, in effect, UIView's init() is a convenience initializer that calls init(frame: .zero).

谢谢!

最佳答案

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

我不是解决这个问题的人。如果问题中没有提及,该项目只是远程/自由职业的一个副项目。实际上,如果上面没有提到的话,我正在将项目迁移到 Swift 4.2。一路走来,这个问题就出现了。我没有费心去重命名所有更新期间要重命名的代码。长话短说,我暂时放弃了这个任务,但公司里有人决定解决它。

解决方案是:先完成迁移。只需重命名 Swift 4.2 所需的所有内容,并更新 pod 即可。就是这样! :) 我希望这对将来的人有帮助。

关于ios - Xcode 不允许我对 UIView 使用 NSObject 的 init() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53324372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com