我有一个名为Item的类,它具有以下属性:
var name: String
var photo: UIImage?
var description: String?
var favorite: Boolinit方法如下所示:
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?该项目是可选的,因为只有当用户按下保存按钮时才会创建该项目。但是,有一个错误说“期望的成员名称或构造函数调用后的类型名称”。我以前在类似的餐饮课程中使用过相同的线路,没有出现任何问题。
当我尝试使用以下代码创建项目时:
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的新手,不确定发生了什么,问题出在哪里。
发布于 2017-02-25 05:07:43
您的意思是要将item声明为该类的成员,然后再实例化它吗?如果是这样,
var item = Item?应该是
var item: Item?发布于 2017-02-25 05:09:54
应在类型名称之后使用成员名称或构造函数调用
指的是
var item = Item() // constructor call或
var item = Item.foo // member name, foo is some type property要声明一个无默认值的可选类型,您必须编写
var item : Item?您的混合表单var item = Item?不是有效语法。
https://stackoverflow.com/questions/42448248
复制相似问题