Как распечатать / сбросить NSObject? - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть

Crashlytics.sharedInstance().setObjectValue(loginAccount, forKey: "loginAccount")

У меня есть доступ к SwiftyJSON Pod в моем проекте, поэтому я попробовал

print(JSON(loginAccount))

Я получил

unknown

Что я должен сделать, чтобы сделать мой диктат более читабельным?


SessionAccount

import Foundation
import SwiftyJSON


public class SessionAccount : NSObject {

    var id             : Int?
    var username       : String?
    var password       : String?
    var accountType    : String?
    var role           : String?
    var privateVlan    : String?
    var guestVlan      : String?
    var timezoneOffset : Int?
    var loginTime      : Date?
    var cpe            : CPE?
    var cpeName        : String?
    var cpeProfiles    : [Profile] = []
    var deviceCount    : Int?
    var activeCount    : Int?
    var inactiveCount  : Int?
    var offlineCount   : Int?
    var profileDevices : [Device] = []
    var cpeDevices     : [Device] = []
    var lanSetting     : LANSetting?
    var alerts         : [Alert] = []
    var quarantineList : [String] = []

    override init() {
        super.init()
    }

    convenience init(_ record: JSON) {
        self.init()
        self.id = record["id"].int
        self.accountType = record["accountType"].string
        self.role = record["role"].string
        self.timezoneOffset = record["timezoneOffset"].int
    }

}

Ответы [ 2 ]

0 голосов
/ 08 марта 2019

Вы можете использовать dump (self) .

dump () не возвращает строку.Он просто выводит на консоль,

вывод будет -

<SessionAccount: 0x000055957bfcd400> #0
  - super: Foundation.NSObject
  - id: nil
  - username: nil
  - password: nil
  - accountType: nil
  - role: nil
  - privateVlan: nil
  - guestVlan: nil
  - timezoneOffset: nil
  - loginTime: nil
  - cpeName: nil
  - deviceCount: nil
  - activeCount: nil
  - inactiveCount: nil
  - offlineCount: nil
  - quarantineList: 0 elements
0 голосов
/ 28 февраля 2019

Действительно ли SessionAccount должен быть class, который наследуется от NSObject?Если вы используете структуру print собирается напечатать все члены.

В class необходимо переопределить description и вернуть строку, которую вы хотите отобразить, например

override var description : String {
    return "SessionAccount: \(username) - \(accountType)"
}
...