monitoring ivar changes in Objective-C, specially directly ivar access
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE
Meow.h
Meow.mm
README.md
meow-screenshot.png

README.md

Meow

Meow is a small library that monitoring ivar changes for all objects of given class.

For details, you may refer to my blog, Monitoring Ivar Changes in Objective-C

Usage

[Meow initWithClassName:@"ProtectedClass"];

FAQ

But why on earth do we need the Meow? Since [BigBang](https://github.com/codesourse/BigBang/) or [ANYMethodLog](https://github.com/qhd/ANYMethodLog/) already does great job...

The answer is simple, ivar can be directly accessed instead of via a setter method. For example,

@interface ProtectedClass : NSObject {
@public
        NSString * _password;
}
@property (nonatomic, getter=password, setter=setPassword:) NSString * password;
@end

/// ...omited...
ProtectedClass * obj = [[ProtectedClass alloc] init];
obj->_password = @"喵咕咪~"; // directly access, undectectable in BigBang or ANYMethodLog
[obj setPassword:@""]; // BigBang or ANYMethodLog dectectable
/// ...omited...

Screenshot

screenshot