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 = {}; | |
} | |