I found some documentation of the types returned by method_copyReturnType()
in the Objective-C runtime API. These mysterious characters are called Type Encodings in Objective-C and are unique codes represented by one or fewer characters.
I note it here for my own benefit.
c
= charB
= BOOL / bool / _bools
= shorti
= intI
= unsigned int?l
= longq
= long longL
= unsigned longC
= unsigned charS
= unsigned shortQ
= unsigned long long (bitmask?)f
= floatd
= doublev
= voidVv
= void*
= char*@
= id object:
= SEL#
= Class^TYPE
= pointerrTYPE
= constN
= inoutbNUMBER
= NUMBER bits?
= unknown type[TYPE]
= array{NAME=type...}
= structure(NAME=type...)
= union{CGRect={CGPoint=dd}{CGSize=dd}}
= CGRect{CGPoint=dd}
= CGPoint{CGSize=dd}
= CGSize
To dynamically retrieve information from a method name using the Objective-C Runtime API in Swift