为什么我可以在没有参数的情况下初始化 UIView,但它的文档没有空的初始化程序?

2024-02-07

let view = UIView()

为什么当唯一记录的时候编译没有错误UIView初始化器是init(frame: CGRect)?

具体来说,我正在尝试编写一个继承自的新类UIView,但是这段代码会抛出一个错误:

class SquadHorizontalScrollViewCell: UIView {

    init(var: FIRDataSnapshot){
        super.init()
....

它说它必须调用指定的初始化程序。


UIView继承自UIResponder它继承自NSObject.

The NSObject.init() 初始化器 https://developer.apple.com/documentation/objectivec/nsobject/1418641-init可以访问UIView,但不是在子类上NSObject它取代了这个指定的初始值设定项。

让我们考虑一个例子。

class A: NSObject { 
    init(_ string: String) { } 
}

这会导致编译器错误let a = A()- 初始化程序缺少参数#1,因为该初始化程序替换了指定的init()初始化程序NSObject在子类中。

您只需将子类的初始值设定项定义为convenience初始化器:

class A: NSObject { 
    convenience init(_ string: String) { 
        self.init() // Convenience initializers must call a designated initializer.
    } 
}

let a = A()现在编译。

UIView还可以使用子类中定义的其他指定初始值设定项进行编译,因为其指定初始值设定项在编译时未知。根据docs https://developer.apple.com/documentation/uikit/uiview/1622488-init,如果以编程方式实例化,init(frame:)是指定的初始值设定项,否则init()是指定的初始值设定项。这意味着UIView继承了NSObject指定初始值设定项而不是像上面的示例中那样替换它。

在你的例子中:

class SquadHorizontalScrollViewCell: UIView {

    init(var: FIRDataSnapshot){
        super.init()

我们看到指定的初始化器是init(frame: CGRect),所以你必须调用这个指定的初始值设定项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我可以在没有参数的情况下初始化 UIView,但它的文档没有空的初始化程序? 的相关文章

  • Cordova 2.4.0 或 2.5.0 或 2.6.0 和 requirejs

    Cordova 2 4 0 及更高版本支持 AMD 加载到 javascript 中 我特别希望将 Cordova 2 5 0 与最新版本的 RequireJS backbone jquery jquery mobile 一起使用 我还没有
  • iOS - 如何在 swift 中使用 `NSMutableString`

    我已经看过这段 Objective C 代码 但我很难在 swift 中做同样的事情 NSMutableAttributedString res self richTextEditor attributedText mutableCopy
  • 如何开始复杂级别的跨平台移动应用开发? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • .showsPhysics 内存泄漏

    我最近花了 5 个小时尝试调试 Spritekit 应用程序中的内存泄漏 应用程序启动后 我注意到内存使用量略有上升 我花了 5 个小时中的 3 个小时挖掘参考资料 了解强与弱的关系ARC https developer apple com
  • 如何在iOS中处理1到3个手指的滑动手势

    我使用以下代码来处理代码中的 1 根手指滑动 UISwipeGestureRecognizer swipe UISwipeGestureRecognizer alloc initWithTarget self action selector
  • iOS、通用链接、Swift。 continueUserActivity 未调用

    我正在为我们的 iOS 应用程序实现通用链接 这是我的一小部分 AppDelegate private func application application UIApplication openURL url URL sourceApp
  • 如何从 SDK 实现每个会话的 Google Places 自动完成功能?

    是否可以从 Android 和 iOS 应用程序的 place sdk 实现基于会话的自动完成 根据 6 月 11 日生效的新 Google 地图框架定价 对自动完成的请求可以分为基于击键 会话的请求 我找不到描述实施步骤的文档 除了这个参
  • Objective-C UILabel 作为超链接

    我正在尝试做一个UILabel一个链接UIWebView 我怎样才能做一个UILabel作为超链接 您可以使用 UITapGestureRecognizer 它将实现与您想要的类似的功能 UILabel myLabel UILabel al
  • 每 24 小时触发一次方法

    我正在尝试每天在给定时间触发一个方法 我尝试了一些方法 但我无法真正使其发挥作用 任何意见 将不胜感激 此外 如果无论应用程序是否打开它都会触发 那就更理想了 这可能吗 UI本地通知 http developer apple com lib
  • 无法在 Swift 中对闭包进行弱引用

    Update 我试着不弱化地写一下 好像也没有漏的情况 所以也许这个问题已经没有必要了 在 Objective C ARC 中 当你想让一个闭包能够在闭包内部使用它自己时 该块不能捕获对自身的强引用 否则它将是一个保留循环 因此您可以使闭包
  • iOS:生成pdf时绘制文本时如何设置字体?

    我在ios应用程序中使用drawpdf函数生成pdf 同时调用nsobject类中的drawtext函数 它根据我指定的框架和字符串清楚地绘制文本 我的代码是 void drawText NSString textToDraw inFram
  • 如何让UITextView背景线与文字对齐?

    我正在尝试绘制 UITextView 的背景线 这是我用来画这些线的代码 CGContextBeginPath context CGContextSetStrokeColorWithColor context self horizontal
  • 在 iPhone 3GS 与 iPhone 4 上为 Mobile Safari 嵌入 HTML5 视频

    我在服务器上的 mp4 文件中有 H 264 AAC 编码的视频 mime 类型的视频 mp4 添加到 Web 服务器 IIS 7 并且我有一个带有视频标签的页面
  • Swift - 元类型 .Type 和 .self 之间有什么区别?

    元类型有什么区别 Type and self在斯威夫特 Do self and Type返回一个struct 我明白那个 self可以用来检查dynamicType 你如何使用 Type 首先也是最重要的是查看 Apple 文档type o
  • 调整 UIImage 的大小而不将其完全加载到内存中?

    我正在开发一个应用程序 用户可以在其中尝试加载非常非常大的图像 这些图像首先在表格视图中显示为缩略图 我的原始代码会在大图像上崩溃 因此我重写它以首先将图像直接下载到磁盘 是否有一种已知的方法可以调整磁盘上图像的大小 而无需通过以下方式将其
  • 如何在代码中编辑约束

    我有一个以 100 开始宽度限制的网页 当用户单击按钮时 我想将约束更改为 200 我试过这个 NSLayoutConstraint constrain NSLayoutConstraint constraintWithItem self
  • UIView 圆角 - Swift 2.0?

    我会尝试将一些项目更新到 Swift 2 0 我有一个视图 左上角有一个圆角 在 Swift 没有警告 没有错误 只是没有圆角 这就是它在 Swift let maskPath UIBezierPath roundedRect conten
  • Firebase ref.removeAllObservers() 是否也会递归删除子观察者?

    我看到了一些与此相关的问题 但没有一个真正证实了我的疑问 If I removeAllObservers 在父节点上 这是否也会递归地删除可能已附加在所有子节点和子节点的子节点等处的所有其他观察者 递归地 API 文档为removeAllO
  • 如何使用 RX 应用宽限时间?

    我有一个Observable
  • 更改 iOS7 中 UIAlertView 的字体大小

    我想更改alertView中消息文本和标题文本的字体大小 苹果网站上没有任何文档谈到这一点 但苹果在其子类注释中表示 UIAlertView 类旨在按原样使用 请参考以下链接 https developer apple com librar

随机推荐

  • 如何检查视图是否设置了特定背景

    我正在尝试将视图背景与可绘制对象进行比较 但它对我不起作用 View v1 options findViewById i v1 findViewById R drawable back Drawable d v1 getBackground
  • 从 WordPress 到媒体 wiki 的单点登录

    我正在尝试创建从 Wordpress 到 MediaWiki 的单点登录 我的 WordPress Wordpress 插件 上运行着 WPOauthServer 在我的维基上我有扩展 OAuth2 客户端 https www mediaw
  • /socket.io/socket.io.js 404(未找到)

    我在使用 socket io 时遇到一些问题 我已经查看了我所看到的所有答案 但我找不到任何差异 任何帮助 将不胜感激 我在将代码粘贴到此处时也遇到了格式问题 因此我将其放在了 Pastebin 上 http pastebin com tm
  • 在 ghci 中加载已编译模块时出现“无法加载接口”错误

    你好哈斯克尔社区 我是 Haskell 的新手 当我尝试构建我的第一个更大的项目时遇到了问题 这是问题的最小示例 我正在使用 cabal 来构建 这是一个简单模块的目录结构 FooMod1 FooMod1 cabal Setup hs sr
  • 带有 Angular 的手表工厂变量

    我的单页应用程序有 2 个控制器 第一个用于主菜单 第二个用于视图 他们与这家工厂共享数据 myApp factory MenuFactory function var factory Monitor doneJob Control Rep
  • 自定义波特率

    我正在尝试通过虚拟 COM 端口与硬件设备通信 主机为PC Windows操作系统PC 设备正在以 921600 波特率工作 这段代码的工作原理 DCB dcb dcb BaudRate CBR 115200 SetCommState hP
  • 用空格分割字符串,然后在 ansible/jinja2 中再次连接它

    我正在尝试 清理 Ansible ansible 2 1 1 0 1 fc24 noarch 剧本中变量中的空格 但我首先会split 它然后加入 再次 由于某种原因 该方法给了我以下错误 hosts all remote user roo
  • MATLAB 中的反向谱图 A La Aphex Twin

    我正在尝试将图像视为频谱图 从而在 MATLAB 中将图像转换为音频信号就像 Aphex Twin 的歌曲中那样舔窗者 http www bastwood com aphex php 不幸的是 我很难得到结果 这是我现在所拥有的 funct
  • 将驼峰式字符串转换为 kebab 式字符串的正则表达式

    function hyphenate str var replace str str toLowerCase replace s b g replace console log str return str hyphenate This I
  • ECS Fargate 中的 StoppedReason 被截断

    在 ECS Fargate 中 当任务失败时 有一个 停止原因 字段 它会提供一些有用的日志记录 然而我注意到它在 255 个符号后被截断 下面的屏幕截图 我检查了网络选项卡并跟踪了 http 响应的 JSON 即使在那里它也被截断了 所以
  • iOS 的粒子动画

    我需要粒子动画UIView基于2D的游戏 目前我正在使用一组图像来制作粒子动画 这使得我的应用程序大小增加 有时会导致内存泄漏 有没有办法使用Core Animation制作粒子动画 cocos2d 参见http cocos2d iphon
  • 应用程序的生命周期 - 当应用程序终止并且推送套件有效负载到来时

    应用程序的生命周期是怎样的 当应用程序处于终止状态并且推送套件有效负载到来时 首先 Pushkit 委托方法将起作用 或者 AppDelegate 方法将起作用 有人可以描述在这种情况下调用方法的顺序吗 感谢您的回答 提前致谢 一旦推送套件
  • '无效更新:第 1 部分中的行数无效

    我正在尝试对 tableView 中的聊天重新排序 最近更新的聊天记录应插入IndexPath row 0 section 1 我的理解是 为了删除一行 它必须是可见的 如果该行不可见 则当更新数据源时 我只需tableView inser
  • 如何将 TeamCity 设置为在构建失败时不生成构建工件?

    如何设置 TeamCity 以便在由于单元测试失败而导致构建失败时它不会发布构建工件 我很确定它在 6 0 版本之前是这样工作的 但自从升级到 6 0 后 即使测试失败 它也总是会产生工件 我检查了 如果至少一项测试失败 则构建失败 我们的
  • Powershell:如何将 -whatif 传播到另一个模块中的 cmdlet

    我一直在尝试使用 ShouldProcess 方法编写支持 whatif 的安全代码 以便我的用户在真正运行 cmdlet 之前就知道它应该做什么 然而我遇到了一些困难 如果我使用 whatif 作为参数调用脚本 pscmdlet Shou
  • 基于 Numpy 时间的向量运算,其中前面元素的状态很重要 - for 循环合适吗?

    在状态很重要的情况下执行基于时间的计算时 numpy 数组提供什么功能 换句话说 序列中较早或较晚发生的事情很重要 考虑以下基于时间的向量 TIME np array 0 10 20 30 40 50 60 70 80 90 FLOW np
  • 为任意音频文件生成缩略图

    我想在最大尺寸为 180 180 像素的图像中表示音频文件 我想生成这个图像 以便它以某种方式给出音频文件的表示 将其想象为 SoundCloud 的波形 幅度图 我想知道你们中是否有人有这方面的东西 我一直在搜索一些 主要是 音频可视化
  • F#:可为 Null 支持

    在 F 中使用 Nullable 的正确方法是什么 目前我正在使用这个 但它看起来非常混乱 let test left Nullable
  • apache htaccess 使用别名重写

    我们正在更改我们的域名 这旨在适用于独立应用程序 在 Apache 虚拟主机文件中 DocumentRoot 是 var www website html 而不是此块中的 var www example html Alias apps de
  • 为什么我可以在没有参数的情况下初始化 UIView,但它的文档没有空的初始化程序?

    let view UIView 为什么当唯一记录的时候编译没有错误UIView初始化器是init frame CGRect 具体来说 我正在尝试编写一个继承自的新类UIView 但是这段代码会抛出一个错误 class SquadHorizo