Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

allendeng/DLIntrospection

Open more actions menu
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DLIntrospection

Simple NSObject-category wrapper for <objc/runtime.h> for methods/ivars/protocols/etc. listing. Automatically (often) resolves return types and argument types.

Usage

Type the following commands in LLDB command promt:~ po [NSObject classes]

...
UIDateLabel,
UIDatePicker,
UIDatePickerContentView,
UIDevice,
UIDictationMeterView,
UIDictationPhrase
...

Lets list UIDevice instance methods:

~ po [[UIDevice class] instanceMethods]
...
- (BOOL)isMediaPicker,
- (void)setIsMediaPicker:(BOOL)arg0 ,
- (id)systemVersion,
- (void)_unregisterForSystemSounds:(id)arg0 ,
- (void)_registerForSystemSounds:(id)arg0
...

Or instance variables:

~ po [[UIDevice class] instanceVariables]
int _numDeviceOrientationObservers,
float _batteryLevel

What properties (including private, of course) implements UIViewController?

~ po [[UIDevice class] properties]
@property (nonatomic, assign, readonly) BOOL _useSheetRotation,
@property (nonatomic, copy) @? afterAppearanceBlock,
...
@property (nonatomic, assign) {CGSize=ff} contentSizeForViewInPopover,
@property (nonatomic, assign, getter=isInAnimatedVCTransition) BOOL inAnimatedVCTransition,
@property (nonatomic, assign, readonly) BOOL inExplicitAppearanceTransition

What protocols implements NSData?

po [NSData protocols]
NSCopying,
NSMutableCopying,
NSSecureCoding <NSCoding>

Even cooler, let's see at protocol information (lists @required, @optional methods and @properties):

NSLog(@"%@", [NSObject descriptionForProtocol:@protocol(NSObject)]);
    "@required" =     (
        "- (void)debugDescription",
        "- (void)zone",
        "- (void)performSelector:withObject:withObject:",
        "- (void)description",
        ...
        "- (void)performSelector:",
        "- (void)performSelector:withObject:",
        "- (void)self",
        "- (void)conformsToProtocol:",
        "- (void)class"
    );

##Known issues:

  1. Not all argument types are handled yet (structs, bitmasks);
  2. return and arguments types of protocol methods are not parsed yet.

About

Simple NSObject-category wrapper for <objc/runtime.h>

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.