Skip to content

Instantly share code, notes, and snippets.

@dmcrodrigues
dmcrodrigues / gist:885ba38ed48aaa2e9c50bab2fa46438e
Created March 29, 2017 08:37
Xcode 8.3: Continuous Crash
Process: Xcode [37635]
Path: /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier: com.apple.dt.Xcode
Version: 8.3 (12169)
Build Info: IDEFrameworks-12169000000000000~2
App Item ID: 497799835
App External ID: 821487965
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: Xcode [37635]
@dmcrodrigues
dmcrodrigues / benchmark.swift
Created January 4, 2017 01:28
[Benchmark] Lock using a recursive pthread_mutex_t
import XCTest
import Foundation
let iterationCount = 10_000_000
class BenchmarksTests: XCTestCase {
func testRecursiveLock_NoRecursion() {
self.measure {
invoke(RecursiveLock<Int>(), times: iterationCount)
@dmcrodrigues
dmcrodrigues / observe-array-with-rac.swift
Last active November 8, 2017 07:42
Observing an array using ReactiveCocoa
import ReactiveCocoa
let a: MutableProperty<[Int]> = MutableProperty([])
a.signal.observeNext { array in
print("Array did change: \(array)")
}
a.value.append(1)
a.value.append(2)
@dmcrodrigues
dmcrodrigues / SomeObject.h
Last active August 12, 2016 11:47
Assigning an Objective-C block without bridging through a Swift closure crashes on invocation
#import <Foundation/Foundation.h>
typedef void (^SomeBlock)(NSString * _Nonnull someParameter);
_Nonnull SomeBlock defaultBlock();
@interface SomeObject : NSObject
@property (nonatomic, copy, nullable) SomeBlock someBlock;
@dmcrodrigues
dmcrodrigues / pattern.matching.swift
Last active March 3, 2016 12:39
Expression pattern operator ~=
import UIKit
class A {
var value: Int
init(value: Int) {
self.value = value
}
}
import UIKit
import CoreData
class SomeClass: NSManagedObject {}
class MyManagedObjectContext: NSManagedObjectContext {
override func executeFetchRequest(request: NSFetchRequest) throws -> [AnyObject] {
return [SomeClass()]
}
@dmcrodrigues
dmcrodrigues / gist:b70f7a4008e957ff244a
Created November 17, 2014 09:18
Nil Coalescing Operator snippet
- (NSProgress *)overallProgress {
return objc_getAssociatedObject(self, @selector(overallProgress))
?: (NSProgress *){self.overallProgress = [NSProgress progressWithTotalUnitCount:0]};
}
@dmcrodrigues
dmcrodrigues / gist:9903878
Last active August 29, 2015 13:57
Vagrant: fix mount of shared folders
# Environment
#
# OS: Mac OS X 10.9
# Vagrant: 1.5.1
# Box: precise64
# Error
#
# Failed to mount folders in Linux guest. This is usually because
@dmcrodrigues
dmcrodrigues / ssh.signature.sh
Last active December 16, 2015 05:19
Verify SSH key signature
ssh-keygen -lf $1 # ex: ~/.ssh/id_rsa.pub
//
// UIDevice+DeviceHardware.h
//
// Used to determine EXACT version of device software is running on.
#import <Foundation/Foundation.h>
#include <sys/types.h>
#include <sys/sysctl.h>
typedef enum {