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

标签 ios swift parse-platform pfuser

我刚刚下载并试用了 Parse。

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

标准 PFUser 默认有三个字段。

  1. 用户名
  2. 电子邮件地址
  3. 密码

我想在 User 表中再添加几个“列”。它们是:

  1. 名字
  2. 姓氏
  3. 电话(可选)
  4. 个人资料图片

下面是我的子类设计,但我不确定这是否是人们可能想要子类化他们的 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 等),以便在注册时创建可选字段列?

  3. 我应该去掉那些 didSets block 吗?如果是,你能建议更好的设计吗?

最佳答案

在我看来,实现你想要的最简单的方法是使用存储的 @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"
    }
}

不要忘记在 AppDelegate 中注册您的自定义 PFUser 类:

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

关于ios - 使用 Swift 最佳实践解析 PFUser 子类注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30457830/

相关文章:

iphone - 如何以编程方式创建自定义 View 类?

ios - 表格单元格自动布局的问题没有按照我想要的方式间隔

ios - 将 GIF 复制到 UIPasteboard

ios - Firebase 代码不会在真实的 iPhone 设备上执行,只能在模拟器上执行

ios - 如何在 iOS 中的 prepareForSegue 之前执行按钮按下操作?

java - Localhost 解析与 android 模拟器的集成

ios - autoLayout 和约束问题

iphone - 奇怪的 UIBarButtonItem 行为

javascript - 如何处理 Parse Promise 错误,以便它们不会继续执行代码?

Android 解析、通知和构建类型