使用前导点符号调用 Swift 类工厂方法?

2024-01-05

在最近的一个问题中,发帖者有这样一行有趣的代码:

self.view.backgroundColor = .whiteColor()

看到这一点我很惊讶。我只见过前导点用于枚举值的符号。在这种情况下,backgroundColor属于类型UIColor? and whiteColor是一个类方法UIColor返回一个UIColor.

为什么这有效?这是调用工厂方法的合法方式吗?


This feature叫做 ”隐式成员表达式 https://docs.swift.org/swift-book/ReferenceManual/Expressions.html#ID394"

隐式成员表达式是访问类型成员的缩写方式,例如枚举情况或类方法,在类型推断可以确定隐含类型的上下文中。它具有以下形式:

.member name


但是,从现在开始,我建议你不应该使用此功能Optional or ImplicitlyUnwrappedOptional语境。

虽然这有效:

// store in Optional variable
let col: UIColor?
col = .redColor()

// pass to function
func f(arg:UIColor?) { println(arg) }
f(.redColor())

这会使编译器崩溃:(

func f(arg:UIColor?, arg2:Int) { println(arg) }
//                 ^^^^^^^^^^ just added this.
f(.redColor(), 1)

编译器有一些错误。看:swift 不允许函数参数初始化吗? https://stackoverflow.com/q/26921177/3804019

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

使用前导点符号调用 Swift 类工厂方法? 的相关文章

  • UITableView 快速获取 titleForHeadersInSection

    我想在 UITableView 的部分中设置标题的标题 语法是什么swift设置该部分中标题的标题 func tableView tableView UITableView titleForHeaderInSection section I
  • Swift 3 中的 JSON 解析

    有没有人能够找到一种在 Swift 3 中解析 JSON 文件的方法 我已经能够返回数据 但在将数据分解为特定字段时我没有成功 我会发布示例代码 但我已经尝试了很多不同的方法但没有成功 并且没有保存任何代码 我想要解析的基本格式是这样的 提
  • Swift 中的柯里函数

    我想创建一个返回柯里函数的函数 如下所示 func addTwoNumbers a Int b Int gt Int return a b addTwoNumbers 4 b 6 Result 10 var add4 addTwoNumbe
  • 可以获取位置,但无法获取航向

    我目前只使用模拟器 但我在 iOS 模拟器上快速使用 CoreLocation 时遇到问题 我得到此代码打印的位置更新 但从未得到标题 我不想当然 我正在尝试制作一个指南针类型的应用程序 它将显示目标的方位 class CompassVie
  • Swift:如何减少 didupdatelocations 调用

    我想出了一些代码来打印我所在位置的地址和邮政编码 这是在 didupdatelocation 函数中完成的 我遇到的唯一问题是 didupdatelocation 函数每秒都会更新该地址 因为这电池效率非常低 所以我一直在寻找使用间隔的方法
  • 如何将字符串日期转换为 NSDate?

    我想转换字符串 2014 07 15 06 55 14 198000 00 00 to an NSDate在斯威夫特 尝试这个 let dateFormatter NSDateFormatter dateFormatter dateForm
  • 我的游戏中应该有多少个视图控制器?

    我开始使用 spritekit 构建我的第一个游戏 现在我只有一个视图控制器来呈现开始屏幕场景 override func viewDidLoad super viewDidLoad let scene StartScreenScene C
  • 致命错误:在字典中发现“地理编码地标”类型的重复键。 (Mapbox 地理编码器)

    我引用 这通常意味着要么该类型违反了 Hashable 的要求 要么此类字典的成员在插入后发生了变化 我正在使用 Mapbox Geocoder 当发生此运行时错误时 我的 XCode 将我带到线程 1 0 swift runtime on
  • NVActivityIndi​​catorView 仅适用于特定视图

    我正在使用这个库https github com ninjaprox NVActivityIndi catorView https github com ninjaprox NVActivityIndicatorView用于显示加载指示器
  • init 中的 Swift 通用约束

    我有通用的 我希望能够用特定的约束来初始化它 约束仅用于初始化 班里的其他人并不关心 这是一个简化的示例 struct Generic
  • Swift 中的 UIAlert 自动消失?

    我有以下代码 Creates Alerts on screen for user func notifyUser title String message String gt Void let alert UIAlertController
  • 我可以/如何用 RC3 替换我的 KVO 东西?

    我正在尝试将一个使用 Facebook 的 KVOController 的 objc 应用程序移植到 Swift 我被鼓励去看看RC3 https github com ReactiveCocoa ReactiveCocoa作为一种替代且更
  • 在 swrevealcontroller 之前实现登录屏幕

    我刚刚开始学习 IOS 开发 我已经按照给定的在线教程成功实现了 SWRevealViewController 一切都按预期工作 然后 我决定添加一个登录屏幕 这将是应用程序运行时用户看到的第一个页面 我采取的步骤如下 将 UIViewCo
  • Swift 3 中是否提供内置内部函数?

    我可以在 Xcode 自动完成弹出窗口中看到各种内置函数 如 builtin popount builtin clz 等 我不确定这些是从哪里获取的 单击命令不会导致快速定义或任何文档 Swift 3 中是否有 builtin 或等效的内部
  • 如何快速更改按钮图像?

    我正在开发一个有按钮的应用程序 该按钮没有文本 图像或背景 所以我想做的就是在viewDidLoad函数中给它一个图像 这就是我所拥有的 IBOutlet var tapButton UIButton override func viewD
  • 如何使用正则表达式将字符串分成相同字符的组?

    我有一个这样的字符串 var string AAAAAAABBBCCCCCCDD 并喜欢将字符串分割成这种格式的数组 same characters gt same group 使用正则表达式 Array AAAAAAA BBB CCCCC
  • 在 UIView 中实现自定义 StaggereGrid,就像 SWIFT 中的 Etsy 应用程序一样

    我想实现一个像 Etsy 应用程序一样的 StaggeredGrid 但我对此一无所知 你能给我一些建议吗 这是我需要做的事情的屏幕截图 None
  • xcode 6.1 (Swift) 中的 SIGABRT 运行时错误

    与最初的代码相比 唯一的更改是在ViewControl swift override func viewDidLoad newMessage hidden true super viewDidLoad Do any additional s
  • Swift 中通过不同类调用委托方法

    我正在获取 JSON 菜单 一旦 JSON 返回 我想运行 menuReady 来更新表的内容在 SomeTableViewController 类中 但下面的代码似乎不起作用 AIM Run 菜单就绪 JSON 返回后更新内容 PROBL
  • 在 UIMenuItem 上设置accessibilityLabel

    我正在尝试设置accessibilityLabel of a UIMenuItem而且似乎没有效果 无论如何 VoiceOver 只是读取项目的标题 let foo UIMenuItem title foo action selector

随机推荐

  • 无法解析模块react/lib/ReactUpdates

    我正在克隆一个项目 步骤是 npm i 反应本机链接 当我运行它时react native run ios我有一个问题RCTWebSocket图书馆 如果你稍微搜索一下 这个问题很容易解决 只需要删除 2 个编译器标志 在Custom Co
  • 如何从python Flask中的mongodb mlab返回包含键中特定关键字的文档[重复]

    这个问题在这里已经有答案了 我在 mongodb 中有这个集合 我的收藏 id 5ad2079019551a2108588add brand name MAZOLA LIZA name pyd id 5ad2079019551a210858
  • “ng build”与“ng build --prod”不一致

    我正在开发一个有角度的应用程序 Using Angular 5 2 5 角度 CLI1 6 8 当我执行命令时 ng build 我没有收到任何错误 但是当我尝试生产构建时 ng build prod 我收到错误 属性 someProper
  • Spring启动错误:java.lang.ArrayStoreException:sun.reflect.annotation.TypeNotPresentExceptionProxy

    我想使用 spring boot 来启动我的应用程序 但是在我在 pom xml 添加一些相关的 jar 后 它返回此错误 我感谢可能是由一些冲突 jar 引起的 应用程序 java package com mm application i
  • 检查日期是否是过去的Javascript

    全部 我使用 jQuery UI 作为日期选择器 我正在尝试使用 javascript 检查用户输入的日期是否是过去的日期 这是我的表单代码
  • 计算值太大而无法求幂的马尔可夫链概率

    我使用公式 exp X 作为马尔可夫链的速率 因此选择一个链接相对于另一个链接的比率是 exp X1 exp X2 我的问题是有时X很大 所以exp X 会超出范围double 或者 给定一个 X i 数组 其中一些 X i 太大 以致 e
  • 如何查看矩阵乘法的进度?

    我现在只需要显示矩阵乘法的中间进度 for unsigned int col 0 col
  • uitableview 部分标题内的日期格式,请帮忙

    首先我要说的是 我对 iPhone 开发非常陌生 但我非常努力地学习 因此 非常感谢你们专业人士愿意分享的任何帮助 所以我有一个问题 如果有人能回答我的话那就太棒了 我正在研究更多一项核心数据 并一直在使用苹果开发者网站上找到的核心数据书籍
  • 无法访问 usort() 函数调用内部的全局变量

    我正在尝试使用usort 并在其函数范围内利用全局变量 但没有成功 我已将代码简化为简单的框架以展示我的意思 testglobal 1 function cmp a b global testglobal echo hi testgloba
  • 对哈德逊的“圣杯战争”自动回复“是”

    我们正在使用 grails war 来构建对 hudson 的战争 然后将另一项工作部署到我们的测试环境 问题在于 当 grails war 遇到插件升级时 它会不断要求用户升级某些插件 有没有办法对所有用户输入响应 y 我尝试过 non
  • 服务器端病毒扫描[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我们不允许提出寻求书籍 工具 软件库等推荐的问题 您可以编辑问题 以便用事实和引文来回答 这个问题似乎不是关于主要由程序员使用的特定编程问
  • 如何读取数据文件?

    如果我有数据file txt我想使用以下命令将数据读取到变量中 set 我怎样才能做到这一点 如何将一行移动到另一行 根据您的评论从文件中读取两行 echo off setLocal EnableDelayedExpansion for f
  • 在异步任务之间自由切换的正确方法是什么?

    假设我有一些异步运行的任务 它们可能是完全独立的 但我仍然想设置任务暂停的点 以便它们可以同时运行 并发运行任务的正确方法是什么 我目前正在使用await asyncio sleep 0 但我觉得这增加了很多开销 import asynci
  • akka 中每个主机的最大 Actor 数量

    akka 的一个盒子上最多可以有多少个 actor public void MyActor extends AkkaActor receive Objet obj so something 1 Is there some limit on
  • 对列表进行子类化的 Pythonic 方式

    这是我的一般问题空间 我通过 I2C 与设备建立了字节 位协议 我有一个命令的 数据库 可以完整描述所有位字段类型 值和枚举 我有一个类来使用数据库和一个 i2c 驱动程序 事务器 以便我可以调用命令并获取响应 MyProtocol Pro
  • Android L 中的警报对话框按钮问题

    我在我的应用程序中创建了一个 AlertDialog 在 Android L AlertDialog 按钮适合对话框之前 但在 Android L 中按钮标签会自动转换标题大小写 并且按钮不适合对话框 请看截图 Android L 安卓奇巧
  • 通过vscode的SSH隧道打开Matplotlib图

    我正在设置一个远程工作站 以便在另一台包含 GPU 的计算机上从我的笔记本电脑运行与机器学习相关的 python 代码 我使用 vscode 的 SSH 远程功能来远程运行和调试我的代码 我对这个界面非常满意 但是 我无法生成来自 matp
  • python身份字典[重复]

    这个问题在这里已经有答案了 可能的重复 如何制作一个 python 字典 返回字典中缺少的键的键 而不是引发 KeyError https stackoverflow com questions 6229073 how to make a
  • 当使用 swift3.0 执行按钮操作时,如何在 ios 移动设备中打开文档文件,例如(.pdf、.doc、.docx)?

    我需要打开UIDocumentPickerViewController它应该允许用户选择所有类型的文件 即我使用的 pdf doc 文件UIDocumentPickerViewController方法 我的代码 UIDocumentPick
  • 使用前导点符号调用 Swift 类工厂方法?

    在最近的一个问题中 发帖者有这样一行有趣的代码 self view backgroundColor whiteColor 看到这一点我很惊讶 我只见过前导点用于枚举值的符号 在这种情况下 backgroundColor属于类型UIColor