2015-06-09 3 views
0

Теперь я пытаюсь подклассифицировать PFUser. Обычно я ожидал, что неинициализированная переменная будет создана как столбец в таблице пользователя. Но почему-то это создает только инициализированную переменную.Новый столбец не создан на таблице пользователя на первом пользовательском PFUser SignUp

Вот как я это сделал.

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.

ответ

1

Сомневаюсь, что предыдущие версии Parse вели себя так, как вы ожидали. Насколько мне известно, структура всегда вела себя так, поэтому ничего не изменилось.

Когда новый объект создается в приложении и отправляется в Parse для сохранения, отправляются только поля с непустым значением (вместе со значением). Не было бы смысла посылать имена столбцов с пустым значением, это просто увеличило бы размер данных, отправленных в Parse, без каких-либо причин.

Итак, один крошечный побочный эффект заключается в том, что столбцы не будут созданы, пока хотя бы один объект не установит для них значение. Если вы все еще хотите, чтобы они отображались в браузере данных, вы можете создать их вручную.

 Смежные вопросы

  • Нет связанных вопросов^_^