Skip to content

Instantly share code, notes, and snippets.

@matnogaj
Created March 30, 2017 01:01
Show Gist options
  • Save matnogaj/d2706bef5c564cdd48af0fa951adad1b to your computer and use it in GitHub Desktop.
Save matnogaj/d2706bef5c564cdd48af0fa951adad1b to your computer and use it in GitHub Desktop.
Description of Array, Dictionary and NSSet that is human readable
extension Array {
func properDescribe(indent: Int = 0) {
var indentString: String = ""
for _ in 0...indent {
indentString += "\t"
}
for value in self {
switch value {
case let x as NSManagedObject:
print("\(indentString)'\(x.objectID)'")
case let x as [String:Any]:
x.properDescribe(indent: indent + 1)
default: print("\(indentString)'\(value)'")
}
}
}
}
extension NSSet {
func properDescribe(indent: Int = 0) {
var indentString: String = ""
for _ in 0...indent {
indentString += "\t"
}
for value in self {
switch value {
case let x as NSManagedObject:
print("\(indentString)'\(x.objectID)'")
case let x as [String:Any]:
x.properDescribe(indent: indent + 1)
default: print("\(indentString)'\(value)'")
}
}
}
}
extension Dictionary {
func properDescribe(indent: Int = 0) {
var indentString: String = ""
for _ in 0...indent {
indentString += "\t"
}
for (key, value) in self {
switch value {
case let x as NSManagedObject:
print("\(indentString)[\(key)] = '\(x.objectID)'")
case let x as [String:Any]:
print("\(indentString)[\(key)] = DICT")
x.properDescribe(indent: indent + 1)
case _ as NSSet:
print("\(indentString)[\(key)] = SET")
case let x as [Any]:
print("\(indentString)[\(key)] = ARRAY")
x.properDescribe(indent: indent + 1)
default: print("\(indentString)[\(key)] = '\(value)'")
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment