首次自定义 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 的数据的大小。
所以,是的,一个微小的副作用是,在至少有一个对象为它们设置值之前,不会创建列。如果您仍希望它们出现在数据浏览器中,您可以手动创建它们。
我现在正在尝试子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 的数据的大小。
所以,是的,一个微小的副作用是,在至少有一个对象为它们设置值之前,不会创建列。如果您仍希望它们出现在数据浏览器中,您可以手动创建它们。