Skip to content

Instantly share code, notes, and snippets.

View flexaddicted's full-sized avatar

Lorenzo Boaro flexaddicted

View GitHub Profile
@flexaddicted
flexaddicted / HowToUseIt.swift
Created December 19, 2016 09:05
Extensions for URL that allows to check if a specific extension matches the allowed ones using reduce
guard sourceUrl.matches([".dat", ".csv"]) else {
print("Extension not allowed!")
}
// do your stuff here
@flexaddicted
flexaddicted / introrx.md
Created November 5, 2015 16:51 — forked from staltz/introrx.md
The introduction to Reactive Programming you've been missing
@flexaddicted
flexaddicted / MGNavigationTransitioningDelegate.h
Last active August 29, 2015 14:28 — forked from ArtFeel/MGNavigationTransitioningDelegate.h
Simple sliding transitioning for navigation controller mimics pre iOS7 push/pop animations.All you need, is simply set delegate for you navigation controller: self.navigationController.delegate = self.navigationTransitioningDelegate;NavigationController does not retain delegate, so you should hold it. Note: this code is free (http://unlicense.org)
//
// MGNavigationTransitioningDelegate
//
// Created by Philip Vasilchenko on 27.11.13.
//
#import <UIKit/UIKit.h>
@interface MGNavigationTransitioningDelegate : NSObject <UINavigationControllerDelegate>
// CDBaseManagedObject.h
@interface CDBaseManagedObject : NSManagedObject
+ (NSString *)entityName;
+ (instancetype)insertNewObjectIntoContext:(NSManagedObjectContext *)context;
@end
// CDBaseManagedObject.m
@implementation CDBaseManagedObject
// NSManagedObject+CDAdditions.h
@interface NSManagedObject (CDAdditions)
+ (NSString *)CDAdditionsEntityName;
+ (instancetype)CDAdditionsInsertNewObjectIntoContext:(NSManagedObjectContext *)context;
@end
// NSManagedObject+CDAdditions.m
@implementation NSManagedObject (CDAdditions)
// how to use NetworkRequest class
NSURL *urlRequest = [NSURL URLWithString:@"someurlhere"];
NetworkRequest *request = [[NetworkRequest alloc] initWithURL:urlRequest];
[request performWithCompletionHandler:^(NSData *data) {
NSLog(@"Hello world!!!");
}];
// NetworkRequest.h
typedef void(^NetworkRequestCompletionHandler)(NSData *data);
@interface NetworkRequest : NSObject
@property (nonatomic, strong, readonly) NSURL* url;
- (id)initWithURL:(NSURL*)url;
- (void)performWithCompletionHandler:(NetworkRequestCompletionHandler)completionHandler
// in NetworkFetcher class
- (void)requestCompleted {
if(self.completionHandler) {
// invoke the block with data
self.completionHandler(self.downloadedData);
}
// break the retain cycle
self.completionHandler = nil;
}
- (void)downloadData {
NSURL *url = [NSURL URLWithString:@"someurlhere"];
NetworkFetcher *networkFetcher = [[NetworkFetcher alloc] initWithURL:url];
[networkFetcher startWithCompletionHandler:^(NSData *data){
NSLog(@"Request URL %@ finished", networkFetcher.url);
_fetchedData = data;
}];
}
// how to use NSArray+FAPMap category
NSArray* toMapArray = @[@1, @2, @3];
NSArray* mappedArray = [toMapArray fap_map:^id(id item) {
NSNumber* itemAsNumber = (NSNumber*)item;
int resultValue = [itemAsNumber integerValue] * 3;
return @(resultValue);
}];