0

我现在正在尝试对PFUser进行子类化。通常我希望未初始化的变量将被创建为User 表上的列。但不知何故,它只创建了初始化变量。

这是我的做法。

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

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

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

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

任何的想法?

我目前使用的是 v1.7.4。

4

1 回答 1

1

我怀疑以前版本的 Parse 的行为是否符合您的预期。据我所知,框架一直都是这样运行的,所以没有任何改变。

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

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

于 2015-06-09T09:36:05.327 回答