Files
OrderScheduling/Pods/CocoaDebug/Sources/App/_CrashModel.swift
DDIsFriend 63ca919ed5 update
2023-08-23 09:24:40 +08:00

58 lines
1.6 KiB
Swift

//
// Example
// man
//
// Created by man 11/11/2018.
// Copyright © 2020 man. All rights reserved.
//
import UIKit
class _CrashModel: NSObject, NSCoding {
var id: String
var date: Date
var reason: String?
var name: String?
var callStacks: [String]?
init(name: String, reason: String?) {
id = UUID().uuidString
date = Date()
self.reason = reason
self.name = name
callStacks = Thread.callStackSymbols
}
func encode(with aCoder: NSCoder) {
aCoder.encode(id, forKey: "id")
aCoder.encode(date, forKey: "date")
aCoder.encode(reason, forKey: "reason")
aCoder.encode(name, forKey: "name")
aCoder.encode(callStacks, forKey: "callstacks")
}
required init?(coder aDecoder: NSCoder) {
id = aDecoder.decodeObject(forKey: "id") as? String ?? ""
date = aDecoder.decodeObject(forKey: "date") as? Date ?? Date()
reason = aDecoder.decodeObject(forKey: "reason") as? String
name = aDecoder.decodeObject(forKey: "name") as? String
callStacks = aDecoder.decodeObject(forKey: "callstacks") as? [String]
}
func toString() -> String {
let stringContent = NSMutableString()
stringContent.append("Date: \(String(describing: _OCLoggerFormat.formatDate(date)))\n")
stringContent.append("Name: \(name ?? "N/A")\n")
stringContent.append("Reason: \(reason ?? "N/A")\n")
let stacks = (callStacks ?? []).reduce("", {
return "\($0)\($1)\n"
})
stringContent.append(stacks)
return stringContent as String
}
}