Skip to content

Instantly share code, notes, and snippets.

View petermolnar-dev's full-sized avatar

Peter Molnar petermolnar-dev

View GitHub Profile
@petermolnar-dev
petermolnar-dev / PMOPictureController.m
Last active November 9, 2016 20:36
PMOPictureController.m
#import "PMOPictureController.h"
#import "PMODownloader.h"
#import "PMOPictureWithURL.h"
//1
#define CLASS_NAME NSStringFromClass([self class])
#define INIT_EXCEPTION_MESSAGE [NSString stringWithFormat:@"Use [[%@ alloc] initWithPictureURL:]",CLASS_NAME]
@interface PMOPictureController()
//2
/**
@petermolnar-dev
petermolnar-dev / PMODownloadNotifications.h
Created November 9, 2016 20:40
PMODownloadNotifications.h
#ifndef PMODownloadNotifications_h
#define PMODownloadNotifications_h
static NSString *const _Nonnull PMODownloadWasSuccessful = @"PMODownloadWasSuccessful"
static NSString *const _Nonnull PMODownloadFailed = @"PMODownloadFailed"
#endif /* PMODownloadNotifications_h */
@petermolnar-dev
petermolnar-dev / PMODownloader.m
Last active November 10, 2016 07:25
PMODownloader.m - With Notification Center
#import "PMODownloader.h"
#import "PMODownloadNotifications.h"
@implementation PMODownloader
#pragma mark - Public API
- (void)downloadDataFromURL:(NSURL *)url {
//1
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSURLSession *session = [NSURLSession sharedSession];
@petermolnar-dev
petermolnar-dev / PMODownloader.h
Created November 10, 2016 07:16
PMODownloader.h - With Notification Center
#import <Foundation/Foundation.h>
@interface PMODownloader : NSObject
/**
Downloading and giving back the raw data result from the url.
@param url the source url
*/
@petermolnar-dev
petermolnar-dev / PMOPictureController.m
Last active November 10, 2016 13:40
PMOPictureController.h - With Notification Center
#import "PMOPictureController.h"
#import "PMODownloader.h"
#import "PMOPictureWithURL.h"
//1
#import "PMODownloadNotifications.h"
#define CLASS_NAME NSStringFromClass([self class])
#define INIT_EXCEPTION_MESSAGE [NSString stringWithFormat:@"Use [[%@ alloc] initWithPictureURL:]",CLASS_NAME]
@petermolnar-dev
petermolnar-dev / PMOPictureControllerTests.m
Created November 10, 2016 21:28
PMOPictureControllerTests.m - With Notification Center
#import <XCTest/XCTest.h>
#import "PMOPictureController.h"
#import "PMODownloadNotifications.h"
@interface PMOPictureControllerTests : XCTestCase
@property (strong, nonatomic) PMOPictureController *pictureController;
@end
@implementation PMOPictureControllerTests
@petermolnar-dev
petermolnar-dev / main.m
Created November 18, 2016 06:56
NSPredicate first example
NSDate *today = [NSDate date];
NSDateComponents *dayComponent = [[NSDateComponents alloc] init];
dayComponent.day = 1;
NSCalendar *theCalendar = [NSCalendar currentCalendar];
NSDate *tomorrow = [theCalendar dateByAddingComponents:dayComponent toDate:today options:0];
dayComponent.day = -1;
NSDate *yesterday = [theCalendar dateByAddingComponents:dayComponent toDate:today options:0];
@petermolnar-dev
petermolnar-dev / PMODownloader.h
Last active December 6, 2016 21:34
PMODownloader.h - With KVO
#import <Foundation/Foundation.h>
@interface PMODownloader : NSObject
//1
/**
Property to store the downloaded data in NSData format
*/
@property (strong, nonatomic, nullable) NSData *downloadedData;
/**
@petermolnar-dev
petermolnar-dev / PMODownloader.m
Last active December 6, 2016 21:35
PMODownloader.m - With KVO
#import "PMODownloader.h"
#import "PMODownloadNotifications.h"
@implementation PMODownloader
#pragma mark - Public API
- (void)downloadDataFromURL:(NSURL *)url {
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSURLSession *session = [NSURLSession sharedSession];
@petermolnar-dev
petermolnar-dev / PMOPictureController.m
Last active December 6, 2016 21:35
PMOPictureController.m - With KVO
#import "PMOPictureController.h"
#import "PMODownloader.h"
#import "PMOPictureWithURL.h"
#import "PMODownloadNotifications.h"
//1
static void *DownloadedDataObservation = &DownloadedDataObservation;
@interface PMOPictureController()
//2