使用Swift最佳实践解析PFUser子类注册

时间:2015-05-26 11:54:02

标签: ios swift parse-platform pfuser

我刚刚下载并试验了Parse。

一切都按预期工作,但我对一个好的子类设计有疑问。

默认情况下,标准PFUser有三个字段。

  1. 用户名
  2. EMAILADDRESS
  3. 密码
  4. 我想在User表中添加一些“列”。那些是:

    1. 的firstName
    2. lastName的
    3. 电话(可选)
    4. profilePicture
    5. 下面是我的子类设计,但我不确定这是否是人们想要子类化PFUser的方式。

      import UIKit
      
      class GPUser: PFUser, PFSubclassing {
          var firstName: String? {
              didSet {
                  self["firstName"] = firstName;
              }
          }
          var lastName: String? {
              didSet {
                  self["lastName"] = lastName;
              }
          }
          var phone: String? {
              didSet {
                  self["phone"] = phone;
              }
          }
          var profilePicture: PFFile? {
              didSet {
                  self["profilePicture"] = profilePicture;
              }
          }
      }
      

      问题:

      1. 我想知道什么是子类化PFUser的最佳方法(为了向其添加列),当然还有最好的设计。你有任何设计吗?

      2. 我们应该覆盖init方法并实例化所有变量(firstName,lastName,phone等),以便在signUp上创建可选字段列吗?

      3. 我应该摆脱那些didSets块吗?如果是的话,你能否建议更好的设计?

2 个答案:

答案 0 :(得分:3)

在我看来,实现目标的最简单方法是使用存储的@NSManaged属性:

class GPUser: PFUser, PFSubclassing {
    @NSManaged var firstName: String
    @NSManaged var lastName: String
    @NSManaged var phone: String
    @NSManaged var profilePicture: PFFile

    class func parseClassName() -> String! {
        return "YourParseClassName"
    }
}

请勿忘记在PFUser注册您的自定义AppDelegate课程:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    GPUser.registerSubclass()
}

答案 1 :(得分:1)

写一个扩展名怎么样?

类似的东西:

convert(varchar(20),getdate(),101)