如何在swift中生成空对象

如何在swift中生成空对象,swift,object,Swift,Object,如何在swift中初始化空对象?这就是我所拥有的,但它也需要参数 var userInfo:User = User() init(email: String, isVerified: String, profileImageURL: String, reputation: String, twitterHandle: String, userName: String) { self._email = email self._isVerified = isVeri

如何在swift中初始化空对象?这就是我所拥有的,但它也需要参数

var userInfo:User = User()

init(email: String, isVerified: String, profileImageURL: String, reputation: String, twitterHandle: String, userName: String) {
        self._email = email
        self._isVerified = isVerified
        self._profileImageURL = profileImageURL
        self._reputation = reputation
        self._twitterHandle = twitterHandle
        self._userName = userName
    }

创建具有如下可选属性的类/结构

struct Employee {//struct or class
    var name: String?
    var number: String?
    var position: String?
}
然后,您可以创建一个没有任何值、具有某些值的对象

let emp = Employee()
let emp = Employee(name: nil, number: nil, position: nil)
let emp = Employee(name: "abc", number: nil, position: "xyz")
通过创建具有默认值的init方法,可以在创建对象时忽略参数

struct Employee {
    var name: String?
    var number: String?
    var position: String?
    init(name: String? = nil, number: String? = nil, position: String? = nil) {
        self.name = name
        self.number = number
        self.position = position
    }
}
let emp = Employee()
let emp = Employee(name: "abc", number: "124", position: "xyz")
let emp = Employee(name: "abc", position: "xyz")
let emp = Employee(number: "124")
let emp = Employee(name: "abc", number: "124")

我假设您正在创建空的用户对象,以便以后可以填充信息。我发现有两个问题:一个,对象属性都必须是变量;二个,很容易出错并传递错误信息,因为对象并不总是与真实实体相对应

更好的方法是定义一组参数,这些参数对于要定义的用户对象来说是必需的,并且让每个其他参数都是可选参数,或者为它们提供默认值。例如,如果我们选择用户名和电子邮件作为必填项,并将配置文件图像设置为可选项,并且isVerified的默认值为false:

class User {
    var userName: String
    var email: String
    var isVerified: Bool
    var profileImageURL: String?

    init(userName: String, email: String, isVerified: Bool = false) {
        self.userName = userName
        self.email = email
        self.isVerified = isVerified
    } 
}

对象定义是什么样子的?init函数是什么?我刚刚用空函数初始化它strings@ShedSports我不知道您的应用程序的细节,但我向您保证,由电子邮件、用户名等组成的初始化为空字符串和其他无意义值的用户是。。。非感官的。您拥有的不是一个“空”对象,而是一个“技术上可以创建的对象,但在我的业务领域中绝对不代表任何有价值的东西,因此应该使其不可能存在”。如果您与我们分享更多关于您试图解决的潜在问题的信息,我可能会建议其他方法您为什么希望创建一个“空”用户对象?有什么好处?为什么不执行
var userInfo:User?
并将其保留为nil可选?