【发布时间】:2017-07-15 20:27:53
【问题描述】:
我有一个名为 Item 的类,具有以下属性:
var name: String
var photo: UIImage?
var description: String?
var favorite: Bool
init 方法如下所示:
init?(name: String, photo: UIImage?, description: String?,
favorite: Bool) {
guard !name.isEmpty else {
return nil
}
self.name = name
self.photo = photo
self.description = description
self.favorite = favorite
}
在 ViewController 中,我试图像这样设置变量“item”:
var item = Item?
该项目是可选的,因为它只会在用户按下保存按钮时创建。但是,有一个错误说“类型名称之后的预期成员名称或构造函数调用”。我之前在类似的 Meal 课程中使用过同一行,没有问题。
当我尝试使用此代码创建项目时:
let name = nameTextField.text ?? ""
let photo = photoImageView.image
let favorite = favoriteButton.favorite
let description = descriptionTextView.text
item = Item(name: name, photo: photo, description: description, favorite: favorite)
错误提示“无法分配 'Item?' 类型的值?”键入'Item?.Type'(又名'Optional.Type')”。我是 Swift 新手,不确定发生了什么以及问题出在哪里。
【问题讨论】: