首次自定义 PFUser 注册时未在用户 Table 上创建新列

New Column is Not created on User Table on First Custom PFUser SignUp

我现在正在尝试子class一个PFUser。通常我希望未初始化的变量将被创建为 User table 上的列。但不知何故它只创建初始化变量。

这是我的做法。

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();

请注意,当用户第一次注册时,我没有要求他们输入 phone、个人资料图片和出生日期

解析只在 table 上为我创建 displayName 列。

以前版本的 Parse 会自动在 User table 上创建这些列。

我尝试删除 User class 并执行注册过程。但是那些未初始化的字段不会添加到列中。发生了什么变化?

有什么想法吗?

我目前使用的是 v1.7.4。

我怀疑以前版本的 Parse 的行为是否符合您的预期。据我所知,该框架一直以这种方式运行,因此没有任何变化。

当在应用程序中创建新对象并将其发送到 Parse 进行保存时,只会发送具有非空值的字段(连同值)。发送带有空值的列名是没有意义的,它只会无缘无故地增加发送到 Parse 的数据的大小。

所以,是的,一个微小的副作用是,在至少有一个对象为它们设置值之前,不会创建列。如果您仍希望它们出现在数据浏览器中,您可以手动创建它们。