ios - 在 Swift 3 中使用默认初始值设定项更改可选属性值

标签 ios swift initialization

当我设置名为 item2 的变量时,这行代码有什么问题?如果名称属性是可选的,为什么不能执行此初始化?

class ShoppingListItem {
    var name: String?
    var quantity = 1
    var purchased = false
}

var item = ShoppingListItem()
var item2 = ShoppingListItem(name:"Orange Juice")

print(item.name)
print(item2.name)

最佳答案

用这段代码

ShoppingListItem(name:"Orange Juice")

您正在调用不存在的 ShoppingListItem 的初始值设定项。

所以只需在类中定义初始化器

class ShoppingListItem {
    var name: String?
    var quantity = 1
    var purchased = false

    init(name:String) {
        self.name = name
    }

    init() { }
}

关于ios - 在 Swift 3 中使用默认初始值设定项更改可选属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38381251/

相关文章:

ios - 使用 Storyboard创建可重用的 UITableView

ios - 如何过滤掉第7个字符为冒号的数组对象?

ios - 扫描成功后 AVFoundation 停止

java - 如何初始化静态 SparseArray

python - 在 Python 中创建一个从输入命名的新变量?

ios - 检测 NSString 的语言

ios - 试图从充满 NSDate 对象的 NSMutableArray 中获取 double 值

generics - 符合 Swift 协议(protocol)的泛型类型

swift - Xcode 6.3 和 Swift 1.2 中的新警告 : Cast from '[SKNode]' to unrelated type 'String' always fails

c++ - 为什么我不能初始化 WNDCLASSEX wc?