我现在正在尝试子类化 PFUser 。通常我会期望未初始化的变量将作为用户表上的列创建。但不知何故,它只会创建初始化变量。
我是这样做的。
class CustomUser: PFUser, PFSubclassing {
@NSManaged var displayName: String;
@NSManaged var phone: String;
@NSManaged var profilePicture: PFFile;
@NSManaged var birthDate: NSDate;
}
以下是我如何使用它。
var user = CustomUser();
user.email = emailTextField.text;
user.username = emailTextField.text;
user.password = passwordTextField.text;
user.displayName = displayNameTextField.text.capitalizedString;
user.signUpInBackground();
请注意,当用户首次注册时,我没有要求他们输入手机,profilePicture和birthDate 。
Parse只为我创建displayName列。
先前版本的Parse会自动在用户表上创建这些列。
我尝试放弃用户类并执行注册过程。但是那些未初始化的字段没有添加到列中。改变了什么?
有什么想法吗?
我目前正在使用v1.7.4。
答案 0 :(得分:1)
我怀疑先前版本的Parse是否符合您的预期。据我所知,框架总是以这种方式表现,所以没有任何改变。
在应用程序中创建新对象并将其发送到Parse进行保存时,仅发送具有非空值的字段(以及值)。没有必要发送一个空值的列名,它只会增加发送给Parse的数据的大小。
所以是的,一个微小的副作用是在至少一个对象为它们设置值之前不会创建列。如果您仍希望它们出现在数据浏览器中,您可以手动创建它们。