Get it from the App Store.
In XCode's Preferences > Downloads you can install command line tools.
| git checkout develop | |
| git pull origin develop | |
| git checkout stage | |
| git reset --hard develop | |
| git push origin stage --force-with-lease |
| /** | |
| * Determines the properties of @c className and returns list of these properties as strings. | |
| * The method will iterate through @c className superclass hierarchy and fetch the properties from | |
| * the superclass hierarchy as well. | |
| * | |
| * @return the list of properties found on @c className | |
| */ | |
| - (NSOrderedSet<NSString *> *)getMethodListForClass:(Class)className | |
| { | |
| NSMutableOrderedSet<NSString *> *propertiesList = [NSMutableOrderedSet orderedSet]; |
| #import <objc/runtime.h> | |
| - (NSArray *)discoverAppModuleClasses | |
| { | |
| NSMutableArray *appModuleClasses = [NSMutableArray array]; | |
| // Integrate all classes which comply to the provider protocol | |
| unsigned int count = 0; | |
| Class *classList = objc_copyClassList(&count); | |
| for (NSUInteger index = 0; index < count; index++) |
| // Taken from the commercial iOS PDF framework http://pspdfkit.com. | |
| // Copyright (c) 2013 Peter Steinberger. All rights reserved. | |
| // Licensed under MIT (http://opensource.org/licenses/MIT) | |
| // | |
| // You should only use this in debug builds. It doesn't use private API, but I wouldn't ship it. | |
| #import <objc/runtime.h> | |
| #import <objc/message.h> | |
| // Compile-time selector checks. |
| __weak __typeof__(self) weakSelf = self; | |
| // some api that takes blocks, when you give the block do | |
| ^{ | |
| __strong __typeof__(weakSelf) self = weakSelf; | |
| } |
| CADisplayLink *displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(refresh:)]; | |
| [displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; | |
| counter = 0; | |
| previousTimestamp = displayLink.timestamp; | |
| - (void)refresh:(CADisplayLink *)displayLink { | |
| counter++; | |
| if (counter > 60) { |
| - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { | |
| // setup initial state (e.g. before animation) | |
| cell.layer.shadowColor = [[UIColor blackColor] CGColor]; | |
| cell.layer.shadowOffset = CGSizeMake(10, 10); | |
| cell.alpha = 0; | |
| cell.layer.transform = CATransform3DMakeScale(0.5, 0.5, 0.5); | |
| cell.layer.anchorPoint = CGPointMake(0, 0.5); | |
| // define final state (e.g. after animation) & commit animation | |
| [UIView beginAnimations:@"scaleTableViewCellAnimationID" context:NULL]; |
| // Define callback blocks | |
| // Success | |
| __block typeof (self) weakSelf = self; | |
| void (^successBlock)(NSURLRequest *, NSHTTPURLResponse *, UIImage *) = | |
| ^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) { | |
| // Assigning an image that has not yet been decoded leads | |
| // to stuttering in UI animations | |
| // Forcing image decoding on a background thread fixes this | |
| dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^(void) { |
| // Initialize namespaces --------------------- | |
| if (!window.mm) { | |
| mm = {}; | |
| } | |
| // avoid window. use this if you "think" you are in root closure. makes encapsulation possible and code executable without DOM (like node...) | |
| if (!this.mm) { | |
| mm = {}; | |
| } | |