簡體   English   中英

使用Swift最佳實踐解析PFUser子類注冊

[英]Parse PFUser Subclass Sign Up using Swift Best Practice

我剛剛下載並嘗試了Parse。

一切都按預期工作,但是我對一個好的子類化設計有疑問。

默認情況下,標准PFUser具有三個字段。

  1. 用戶名
  2. 電子郵件地址
  3. 密碼

我想在User表中添加更多的“列”。 那些是:

  1. 名字
  2. 電話(可選)
  3. profilePicture

下面是我的子類設計,但是我不確定這是否是想為其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塊嗎? 如果是,您可以建議一個更好的設計嗎?

我認為,實現所需目標的最簡單方法是使用存儲的@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()
}

編寫擴展程序怎么樣?

就像是:

extension PFUser {

    var picture:PFFile? {
        get {
            return self["picture"] as? PFFile
        }
        set {
            self["picture"] = newValue
        }
    }

    var name:String?{
        get {
            return self["name"] as? String
        }
        set {
            self["name"] = newValue
        }
    }

    var score:Int? {
        return self["score"] as? Int
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM