Skip to content

Instantly share code, notes, and snippets.

View JimRoepcke's full-sized avatar

Jim Roepcke JimRoepcke

View GitHub Profile
// Playground - noun: a place where people can play
import Cocoa
struct Regex {
let pattern: String
let expressionOptions: NSRegularExpressionOptions
let matchingOptions: NSMatchingOptions
init(pattern: String, expressionOptions: NSRegularExpressionOptions, matchingOptions: NSMatchingOptions) {
@JimRoepcke
JimRoepcke / Playground.swift
Created March 26, 2020 01:59
Change in Swift behaviour with didSet property observer for @published property in Xcode 11.4
/*
In Xcode 11.3.1, the output is:
>>> setting n to -1
sending value through valueDidChange publisher
situation negative("hello")
<<< done
>>> setting n to 1
sending value through valueDidChange publisher
situation positive("hello")
@JimRoepcke
JimRoepcke / Playground.swift
Created March 26, 2020 01:54
Change in Swift behaviour with didSet property observer for @published property in Xcode 11.4
/*
In Xcode 11.3.1, the output is:
>>> setting n to -1
sending value through valueDidChange publisher
situation negative("hello")
<<< done
>>> setting n to 1
sending value through valueDidChange publisher
situation positive("hello")
enum Bar: String {
case a, b, c
init?(w: Bool, x: Bool, y: Bool, z: Bool) {
if w {
if x {
self = .a
return
} else if y {
self = .b
return
@JimRoepcke
JimRoepcke / Weird.swift
Last active June 29, 2016 04:24
Please help me understand why the Swift 2.2 compiler in Xcode 7.3.1 says the class does not conform to the protocol
//: Playground - noun: a place where people can play
protocol Thingy: class {}
protocol ThingTaking: class {
associatedtype ThingType: Thingy
func some(thing: ThingType)
}
@JimRoepcke
JimRoepcke / gist:5851621
Created June 24, 2013 16:58
This is what I get when selecting the shell script at http://www.doubleencore.com/2013/06/tutorial-finding-calls-to-uniqueidentifier-in-your-ios-app/ and copying it to the clipboard.
for match in $(grep -lR uniqueIdentifier *); do printf "File:%s\n\n" $match; otool -v -s __TEXT __objc_methname $match | grep uniqueIdentifier; printf "\n\n"; done; - See more at: http://www.doubleencore.com/2013/06/tutorial-finding-calls-to-uniqueidentifier-in-your-ios-app/#sthash.kV1BoNc0.dpuf
@JimRoepcke
JimRoepcke / gist:5445746
Created April 23, 2013 17:43
Letter to the Apple Developer Program regarding last night's developer site outage.
Last night the developer site went offline. It should come as no surprise that this immediately sent many people into panic mode thinking WWDC tickets would be available when the site came back online.
I didn't get to go to WWDC last year because tickets went on sale while I was sleeping, so this year I've signed up for every service I can find to tell me when tickets go on sale, and I run scripts to check the WWDC site. Everyone knows that if WWDC is capped at 5K tickets as it has been, they'll sell out in record time this again year.
You guys are just as aware of this as the rest of us are.
And yet, despite knowing that tickets weren't going to be for sale when the site returned, you chose not to communicate this to the thousands of Apple developers on Twitter that had become chained to their computers last night in anticipation.
This is totally disrespectful. I understand why ticket sales aren't pre-announced, but please don't make this any worse than it has to be. If you're going to take the site offl
@JimRoepcke
JimRoepcke / gist:4536602
Created January 15, 2013 06:13
Putting a category on model classes to specialize UI/layout code for each model type
// In MyViewController.m
@interface BaseModelClass (MyViewControllerLayout)
// If your model classes don't have a common superclass, put
// this category on NSObject instead
- (void)layoutForMyViewController:(MyViewController *)controller;
@end
@JimRoepcke
JimRoepcke / gist:3065296
Created July 7, 2012 07:46
@synchronized doesn't retain monitored object under MRC
__block id foo = [MyObject new];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSLog(@"block entering synchronized");
@synchronized(foo) {
NSLog(@"running in synchronized");
sleep(10);
NSLog(@"running [foo self]");
[foo self];
NSLog(@"ran [foo self]");
}
@JimRoepcke
JimRoepcke / gist:3016633
Created June 29, 2012 08:21
My chat with MobileMe Express Lane support about iCloud Mail and iPhone 3G
Chat Transcript
Friday, June 29, 2012 12:41 AM
Duration: 19 minutes 56 seconds
Shante:
Hi, welcome to Apple! My name is Shante with MobileMe support. Please give me a moment to look over the information you provided.
Shante:
I understand that you would like to confirm that you can move your accounts in any order that you want to and once the accounts are moved to iCloud they will be individual accounts?