- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个这样定义的类:
class User {
var name : String?
}
我使用代码在我的 ViewController 中使用它:
import UIKit
class ViewController: UIViewController {
let user : User = User()
}
编译错误
User is not constructible with ()
我知道 Swift 中的属性必须有一个默认值,但是可选的有一个(nil)。如果我将属性“name”初始化为 nil 或添加一个 init() 初始值设定项,错误就会消失。但是我不明白为什么默认情况下我的可选值不为零。
顺便说一句,playground 中的以下代码可以完美编译:
class ViewController: UIViewController {
let user : User = User()
}
class User {
var name : String?
}
let vc = ViewController()
这很奇怪。
这个问题与this有关但我不明白那里的答案(为什么可选在 Playground 上有默认值但在应用程序中没有?)。
编辑:仅当用户类在单独的文件中定义时才会发生错误。 XCode 是 Beta 3(见图片)
最佳答案
您应该提交错误报告——这绝对是编译器的不正确行为。当您尝试以这种方式进行初始化时,您使用的是默认初始化程序 -- Apple's documentation状态:
Swift provides a default initializer for any structure or base class that provides default values for all of its properties and does not provide at least one initializer itself. The default initializer simply creates a new instance with all of its properties set to their default values.
然后显示这个例子:
class ShoppingListItem {
var name: String?
var quantity = 1
var purchased = false
}
var item = ShoppingListItem()
然后在下面的段落中说:
... (The
name
property is an optionalString
property, and so it automatically receives a default value ofnil
, even though this value is not written in the code.) ...
关于Swift 可选属性错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24807074/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!