Skip to content

Instantly share code, notes, and snippets.

// 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.
@3lvis
3lvis / update_build_number.sh
Created October 30, 2014 09:53
Update build number
branch=$(git rev-parse --abbrev-ref HEAD)
buildNumber=$(expr $(git rev-list $branch --count) - $(git rev-list HEAD..$branch --count))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}"
@3lvis
3lvis / CrazyLazyLoading.m
Created November 13, 2014 12:26
Crazy Lazy Loading
- (HYPLoginViewController *)loginViewController
{
return _loginViewController = (_loginViewController) ?: [HYPLoginViewController new];
}
def should_crop(lines)
(0..6).each do |n|
return false unless lines[n].start_with? "//"
end
return false unless lines[7] = ""
true
end
all_objc = Dir.glob("Classes/**/**/**/**.{m,h}")
all_objc.each do |path|
@3lvis
3lvis / gist:649a005fb39b0c51c49c
Last active August 29, 2015 14:16
Add support for the latest Xcode to Alcatraz

Find the plugin in ~Library/Application Support/Developer/Shared/Xcode/Plug-ins Open the contents of the plugin Open the Info.plist in Xcode Expand the DVTPlugInCompatibilityUUIDs array Create a new entry and paste in A16FF353-8441-459E-A50C-B071F53F51B7

#!/bin/sh
PLIST_BUDDY=/usr/libexec/PlistBuddy
function add_compatibility() {
"$PLIST_BUDDY" -c "Add DVTPlugInCompatibilityUUIDs:10 string $2" \
"$1/Contents/Info.plist"
}
function has_compatibility() {
Step 1:
git clone https://github.com/hyperoslo/pod-template.git MyPod; cd MyPod; ./init.rb
Step 2:
pod name > MyPod
@3lvis
3lvis / gist:d84020ba97bb7f16c0a5
Created April 22, 2015 22:20
Generating a Core Data Model from code
- (void)generateModel {
NSManagedObjectModel *model = [NSManagedObjectModel new];
NSEntityDescription *runEntity = [NSEntityDescription new];
runEntity.name = @"Run";
runEntity.managedObjectClassName = @"Run";
model.entities = @[runEntity];
NSMutableArray *runProperties = [NSMutableArray new];
NSAttributeDescription *dateAttribute = [NSAttributeDescription new];
@3lvis
3lvis / gist:113bcf23dc8255f09712
Last active August 29, 2015 14:20
Enums in Swift and Objective-C
// Swift
enum StatusCode: Int {
case Unknown = 0
case Unauthorized = 401
case Forbidden = 403
case InternalServerError = 500
case ServiceUnavailable = 503
}
// Objective-C
//
// Warnings.xcconfig
//
// The list of warnings we (don’t) use, and the reasons why.
//
// :MARK: Warnings in use:
// :MARK: -everything
// We want the best possible diagnostics, so we simply enable everything that exists, and then opt–out of what doesn’t make sense for us.
//
// :MARK: - Warnings not to be promoted: