问题标签 [swift-optionals]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - Swift忽略块签名中定义的参数类型
我有下面的代码,编译器对此很满意:
但是一旦我item
在块签名中定义了类型,我就会在返回行上得到一个错误:
它说Value of type 'Any?' has no member 'ColorCode'
。我该如何解决这个问题?为什么它仍然使用块提供的默认 Any 类型?
swift - 任何?不正确的语义
我在 swift 中玩了一些代码,遇到了一个有趣的案例。让我们从一个小序言开始:假设您创建了一些可选变量:
然后你强制解开这样的类型au
并且bu
不是可选的。
看起来很合理,但是当您尝试将相同的代码应用于Optional<Any>
:
但是现在如果你尝试做同样的连接au + String(bu)
,swift 会产生编译错误,即使这两个变量已知是某种具体的类型,正如 swift 本身所报告的那样。错误是:
这当然看起来像一个错误,不是吗。请分享您的意见。
swift - xcode:我的健康栏颜色的快速选项
我在 Xcode 中快速为我的游戏创建了一个健康栏。我将健康栏添加到我的warrior1
. 但我想将我的健康栏的颜色更改为黄色,如果healthBar.progress
达到 avalue <= 0.5 && progressBar.progress >= 0.2
和红色,如果healthBar.progress < 0.2
这是我到目前为止的代码:
那是我的ProgressBar
课:
有谁知道我必须在 if 和 else 括号中写什么代码?我将不胜感激。
swift - 问题:我的非可选变量为零。(展开时出现致命错误)
我正在尝试更新 UILabel。
它最初被声明为非可选变量:
UILabel 依赖于非可选变量 balanceValue。
这一切都很好,但在某些时候我得到了这个致命的错误,它不会消失:
线程 1:致命错误:在隐式展开可选值时意外发现 nil
错误是指这一行:
balanceLabel.text = 字符串(平衡值)
这没有任何意义......我有一个非可选变量,默认声明为 1。怎么可能是零。
这是崩溃日志:
和
让我感到奇怪的是,我没有更改工作代码,但现在突然间我遇到了这个问题。重新启动 XCode 不会解决它。尝试了不同的方法来确定问题,但我找不到 balanceValue 应该为零的原因。非常感谢任何帮助。
ios - 可选类型“URL?”的默认值
我有一个扩展程序允许我UITableView
从 API 下载图像到我的。
imageUrl
如果是,则应用程序崩溃nil
。
如果没有图像,我该如何包装它,??
所以它只是空白?UIImageView
这是一个数据模型和获取数据功能
swift - 我希望系统报告不符合协议,但事实并非如此!为什么?
我正在使用 Xcode 版本 11.3.1 (11C504)
我正在尝试在 Swift 中创建一个通用函数,它将拒绝其参数,除非这样的参数是可选的。
在下面的代码中,我希望系统在对made inside的所有调用中报告错误,因为它们都没有提供可选值作为参数。onlyCallableByAnOptable()
test()
Optional
但是,如果我删除符合Optable
!的扩展名,系统只会报告非协议符合性。
对我来说,这意味着系统将任何和所有值视为Optional
,无论如何!
难道我做错了什么?
(顺便说一句,在早期版本的 Swift 中,以下代码曾经按预期工作。我最近才发现它停止工作,因为它让非Optional
通过。)
swift - How to create a generic function in Swift that will reject the given parameter unless it is an Optional?
This question is a follow up to my earlier question: I expected the system to report non protocol conformance, but it does not! Why?
Please read the referred question for you to get a better idea of the constraints at hand.
I created a generic function in Swift that will reject its parameter unless such a parameter is Optional
. The function I created fully works and does what I desire.
Meaning, any calls to onlyCallableByAnOptable(...)
, even inside an if let
, will yield error due to non-protocol conformance, exactly as desired.
Errors like: Argument type 'UIColor' does not conform to expected type 'Optable'
My only question is: Is there a simpler solution?
To make it clear:
func onlyCallableWithAnOptinalParameter<T>(:T)->T
needs to work when called in anif let
statement likefunc test()
does.
android - Kotlin Multiplatform 保留选项 iOS 框架
我目前正在使用 Kotlin Multiplatform 构建一个 API 库,我想在 Android 和 iOS 项目之间共享它。
在某些情况下,API 响应包含可选项(这是 Kotlin 和 Swift 的一个很棒的特性)。例如:
在为 Android (JVM) 构建库时,可以使用选项,在 iOS 项目中使用 iOS 框架时,它们就消失了,因为框架被导出为 Objective-C 框架。
有谁知道如何创建一个 Swift 框架(这甚至可能),或者通过某种解决方法保留选项?谢谢!
swift - 如何创建一个在 Swift 中分配函数的可选变量
我想创建一个可以分配函数(或可以为零)的可选变量。我猜它看起来像这样,但以下代码无法编译。
谢谢你的帮助
swift - 类方法中的 Swift 选项
我对 swift 还比较陌生,所以我在使用正确的语法时遇到了一些问题。这是我的Date类的代码,它具有isLeapYear和daysInMonth方法。我在使用这些方法的选项时遇到问题:
我想要做的func isLeapYear(y : Int? = self.year) -> Bool
是,当我调用 isLeapYear 并且未指定 y 时,它会自动设置为self.year。但是我收到以下错误:
使用未解析的标识符“self”
我也收到错误
可选类型“Int?”的值 必须解包为“Int”类型的值
我知道我必须使用!,但我不确切知道如何以及在哪里尝试过if y! % 4 == 0
,但这似乎使情况变得更糟。
我也想对方法daysInMonth做同样的事情