Note
You can also find the Doxygen documentation here: here
This class is the main interface to inspect Objective-C metadata.
It can be instantiated using the function LIEF::MachO::Binary::objc_metadata
Public Types
Public Functions
Return an iterator over the different Objective-C classes (@interface).
Return an iterator over the Objective-C protocols declared in this binary (@protocol).
Return an iterator over the Objective-C categories declared in this binary (e.g. @interface NSString (MyAdditions)).
Try to find the Objective-C class with the given mangled name.
Try to find the Objective-C protocol with the given mangled name.
Generate a header-like of all the Objective-C metadata identified in the binary. The generated output can be configured with the DeclOpt.
This class represents an Objective-C class (@interface).
Public Types
Iterator for the class’s methods.
Iterator for the protocols implemented by this class.
Iterator for the properties declared by this class.
Iterator for the instance variables defined by this class.
Public Functions
Name of the class.
Demangled name of the class.
Parent class in case of inheritance.
This returns the superclass object only when it is defined in the same binary. For root classes (e.g. NSObject) or superclasses imported from another image, it returns a null pointer even though the name can still be resolved through super_name() / demangled_super_name().
(raw) name of the superclass (empty for root classes or when it could not be resolved).
Demangled name of the superclass.
Iterator over the different protocols implemented by this class.
Iterator over the properties of this class.
Generate a header-like string for this specific class.
The generated output can be configured with DeclOpt
Public Types
Public Functions
Transfer ownership of the class at the current position to the caller. Returns nullptr if the iterator is past-the-end.
This class represents an Objective-C category (e.g. @interface NSString (MyAdditions)).
Public Types
Iterator for the category’s methods.
Iterator for the protocols adopted by this category.
Iterator for the properties declared by this category.
Public Functions
Name of the category.
(demangled) name of the class extended by this category
Iterator over the different protocols adopted by this category.
Iterator over the properties of this category.
Generate a header-like string for this specific category.
The generated output can be configured with DeclOpt
Public Types
Public Functions
Transfer ownership of the category at the current position to the caller. Returns nullptr if the iterator is past-the-end.
This class represents an Objective-C @protocol.
Public Types
Public Functions
Mangled name of the protocol.
Iterator over the protocols adopted by this protocol (e.g. the <Bar, Baz> in @protocol Foo <Bar, Baz>).
Iterator over the methods that could be overridden.
Iterator over the methods of this protocol that must be implemented.
Iterator over the properties defined in this protocol.
Generate a header-like string for this specific protocol.
The generated output can be configured with DeclOpt
Public Types
Public Functions
Transfer ownership of the protocol at the current position to the caller. Returns nullptr if the iterator is past-the-end.
This class represents an instance variable (ivar).
Public Functions
Name of the instance variable.
Type of the instance var in its mangled representation ([29i]).
This class represents an Objective-C Method.
Public Functions
Name of the method.
Prototype of the method in its mangled representation (e.g. @16@0:8).
Virtual address where this method is implemented in the binary.
Whether it’s an instance method.
Public Types
Public Functions
Transfer ownership of the method at the current position to the caller. Returns nullptr if the iterator is past-the-end.
This class represents a @property in Objective-C.
Public Functions
Name of the property.
(raw) property’s attributes (e.g. T@"NSString",C,D,N)
Public Types
Public Functions
Transfer ownership of the property at the current position to the caller. Returns nullptr if the iterator is past-the-end.
This structure wraps options to tweak the generated output of functions like LIEF::objc::Metadata::to_decl.
Public Members
Whether annotations like method’s address should be printed.