the

theWrapper

An objective C utility that lets you add a wrapper to any function.

Showing:

Popularity

Downloads/wk

0

GitHub Stars

71

Maintenance

Last Commit

9yrs ago

Contributors

2

Package

Dependencies

0

License

NetBSD

Categories

Readme

TheWrapper

An objective C utility that lets you add a wrapper to any function.

##What is it?

Suppose you have the following method

//MyClass.m

-(void) foo {
  NSLog(@"My name is Mike");
}

with TheWrapper you can add a wrapper to foo in runtime. Just add the following code before the first call to the function.

//MyClass.m

#import "TheWrapper.h"

+(void) initialize {
    [TheWrapper addWrappertoClass:[MyClass class] andSelector:@selector(foo) withPreRunBlock:^(id<NSObject> zelf, id firstArg, ...) {
    {
        NSLog(@"Hi,");
    }
    andPostRunBlock:^id(id<NSObject> zelf, id functionReturnValue, id firstArg, ...) {
    {
        NSLog(@"Bye.");
    }];
}

Now, calling foo will print

[self foo];

//Hi,
//My name is Mike
//Bye,

The original function's return value is accessible to the PostRunBlock via the functionReturnValue parameter. If you wish to return the original return value, just return it from the PostRunBlock.

##Examples NanoProfiler is the first public usage of theWrapper.

##Known issues

  1. No arc support
  2. Wrapping a method that is only implemented in superclass results in a EXC_BAD_ACCESS.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial