Skip to content

Instantly share code, notes, and snippets.

Michael Ochs michaelochs

  • Cologne, Germany
Block or report user

Report or block michaelochs

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View DynamicNSStringEvaluation.m
@interface MyStringProxy : NSProxy
@property (nonatomic) NSString *target;
@implementation MyStringProxy
- (BOOL)respondsToSelector:(SEL)aSelector {
michaelochs / NSFormattingContextDynamic.m
Created Dec 13, 2016
`NSFormattingContextDynamic` makes a formatter return string proxies that change based on where you but them inside a format string.
View NSFormattingContextDynamic.m
NSDate *date = [NSDate new];
NSDateFormatter *dateFormatter = [NSDateFormatter new];
dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"nl_NL"];
dateFormatter.dateStyle = NSDateFormatterFullStyle;
dateFormatter.formattingContext = NSFormattingContextDynamic; // this is the important setting
NSString *dateString = [dateFormatter stringFromDate:date];
NSString *s1 = [NSString stringWithFormat:@"Foo %@", dateString]; // "Foo dinsdag 13 december 2016"
michaelochs / ViewController.m
Created Nov 4, 2016
Test ARC whether it retains self on method execution or not
View ViewController.m
@interface MyObject : NSObject
@implementation MyObject
- (void)doSomething {
for (int i = 0; i < 1000; i++) {
[self print:i];
michaelochs / ItemCollectionViewController.m
Created Oct 28, 2016
They way I handled async cell configuration before iOS 10.
View ItemCollectionViewController.m
// ItemCollectionViewController.m
// ViewDeckExample
// Created by Michael Ochs on 9/17/16.
// Copyright © 2016 ViewDeck. All rights reserved.
#import "ItemCollectionViewController.h"
michaelochs / Podfile
Created Jul 16, 2016
A pod file that doesn't seem to work on CocoaPods 1.0 anymore
View Podfile
pod 'CocoaLumberjack', '~> 2.0'
pod 'HRSCustomErrorHandling', :git => '', :commit => 'c4aa9fa7f670bb9b6e737893d94031bbbf335d29' #'~> 0.2'
pod 'Aspects', '~> 1.4'
pod 'BCFoundation', :path => '../../BCComponents'
pod 'BCInterface', :path => '../../BCComponents'
pod 'TFFoundation', :path => '../TFFoundation'
michaelochs / NSCharacterSet+Logographic.m
Created Dec 17, 2015
A NSCharacterSet containing (hopefully) all logographic characters from unicode.
View NSCharacterSet+Logographic.m
#define CharacterRange(__from__, __to__) NSMakeRange(__from__, __to__ - __from__ + 1)
@implementation NSCharacterSet (HRSCharacterSet)
+ (instancetype)logographicCharacterSet
NSRange ranges[] = {
CharacterRange(0x2E80, 0x2EFF), // CJK Radicals Supplement
CharacterRange(0x2F00, 0x2FDF), // Kangxi Radicals
CharacterRange(0x3300, 0x33FF), // CJK Compatibility
michaelochs / ExtendUITableViewDelegate.m
Created Aug 26, 2015
An example of how we at HRS expand the `UITableViewDelegate` protocol to trigger custom actions from a cell and communicate them to the table view's delegate.
View ExtendUITableViewDelegate.m
@protocol HRSStepperTableViewCellDelegate<UITableViewDelegate>
- (void)tableView:(UITableView *)tableView didChangeStepperValue:(UIStepper *)stepper forRowWithIndexPath:(NSIndexPath *)indexPath;
@implementation HRSStepperTableViewCell
- (UITableView *)tableView {
UIView *superview = self.superview;
while (superview != nil && [superview isKindOfClass:[UITableView class]] == NO) {
michaelochs / LocalNotifications.m
Last active Aug 29, 2015
Short snipped with an explanation of how your app needs to respond to local notifications.
View LocalNotifications.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UILocalNotification *localNotification = launchOptions[UIApplicationLaunchOptionsLocalNotificationKey];
if (localNotification) {
// the user opened your app by tapping either the notification banner, the notification
// center entry or the open action in the alert view of the notification while your app
// was not running / suspended.
// This is where you want to react to the user's action!
michaelochs / post-checkout
Created Mar 12, 2015
A git post checkout hook that ensures your pods are up to date. If there are no changes in the pods environment, this script does nothing.
View post-checkout
diff "Podfile.lock" "Pods/Manifest.lock" > /dev/null
if [[ $? != 0 ]] ; then
echo 'CocoaPods needs some more clean up...'
echo 'Quit iOS simulator...'
osascript -e 'tell app "iPhone Simulator" to quit'
echo 'Quit Xcode...'
osascript -e 'tell app "Xcode" to quit'
pod install
View gist:47735d1873d0f598c5ba - Returns the current country code - Probably based on the IP address?
You can’t perform that action at this time.