Skip to content

Instantly share code, notes, and snippets.

@AvdLee
AvdLee / DarwinNotificationCenter.swift
Last active June 27, 2024 13:40
A notification center for Darwin Notifications. MIT License applies.
//
// DarwinNotificationCenter.swift
//
// Copyright © 2017 WeTransfer. All rights reserved.
//
import Foundation
/// A Darwin notification payload. It does not contain any userInfo, a Darwin notification is purely event handling.
public struct DarwinNotification {
@mikehaytm
mikehaytm / CocoaMethodsRaiseiOS9.txt
Last active January 6, 2016 14:09
Handle With Care: Cocoa methods and properties that may raise exceptions.
CLASS METHODS
+[AVCaptureDevice requestAccessForMediaType:completionHandler:]
+[AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:]
+[HKCategorySample categorySampleWithType:value:startDate:endDate:]
+[HKCategorySample categorySampleWithType:value:startDate:endDate:device:metadata:]
+[HKCategorySample categorySampleWithType:value:startDate:endDate:metadata:]
+[HKCorrelation correlationWithType:startDate:endDate:objects:]
+[HKCorrelation correlationWithType:startDate:endDate:objects:device:metadata:]
+[HKCorrelation correlationWithType:startDate:endDate:objects:metadata:]
+[HKQuantitySample quantitySampleWithType:quantity:startDate:endDate:]
@Ashton-W
Ashton-W / Breakpoints_v2.xcbkptlist
Last active January 25, 2023 09:28
My User Breakpoints_v2.xcbkptlist
<?xml version="1.0" encoding="UTF-8"?>
<Bucket
type = "2"
version = "2.0">
<Breakpoints>
<!-- All Exceptions -->
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.ExceptionBreakpoint">
<BreakpointContent
@evgenyneu
evgenyneu / empty_swift_file_template.sh
Last active September 19, 2016 11:08
Empty Swift file template script
#!/bin/bash
#
# This script makes an empty Swift file template.
#
# Usage:
#
# sudo ./change_xcode_template
#
# or specify the Xcode app name
@aorcsik
aorcsik / string-truncate.swift
Last active September 27, 2017 16:22
A little truncate function extension for the default String type
extension String {
/// Truncates the string to length number of characters and
/// appends optional trailing string if longer
func truncate(length: Int, trailing: String? = nil) -> String {
if countElements(self) > length {
return self.substringToIndex(advance(self.startIndex, length)) + (trailing ?? "")
} else {
return self
}
}
@kristopherjohnson
kristopherjohnson / dispatch_once.swift
Created August 12, 2014 16:25
Example of using dispatch_once() in Swift
import Foundation
var token: dispatch_once_t = 0
func test() {
dispatch_once(&token) {
println("This is printed only on the first call to test()")
}
println("This is printed for each call to test()")
}
@nonamelive
nonamelive / DMNavigationController.m
Last active April 21, 2023 06:56
Prevent UINavigationController from pushing two view controllers at the same time in case of stack inconsistency and crashes
@interface UINavigationController (DMNavigationController)
- (void)didShowViewController:(UIViewController *)viewController animated:(BOOL)animated;
@end
@interface DMNavigationController ()
@property (nonatomic, assign) BOOL shouldIgnorePushingViewControllers;
@ericcj
ericcj / UIView+TLLayout.h
Created August 29, 2013 13:15
crazy that hiding a uiview doesn't affect its autolayout constraints. here's a category for the rest of the world who uses dynamic interfaces
#import <UIKit/UIKit.h>
@interface UIView (TLLayout)
@property (nonatomic, strong) NSArray *hiddenConstraints;
// set hidden and remove any constraints involving this view from its superview
- (void)hideAndRemoveConstraints;
- (void)showAndRestoreConstraints;
@aras-p
aras-p / preprocessor_fun.h
Last active June 21, 2024 12:20
Things to commit just before leaving your job
// Just before switching jobs:
// Add one of these.
// Preferably into the same commit where you do a large merge.
//
// This started as a tweet with a joke of "C++ pro-tip: #define private public",
// and then it quickly escalated into more and more evil suggestions.
// I've tried to capture interesting suggestions here.
//
// Contributors: @r2d2rigo, @joeldevahl, @msinilo, @_Humus_,
// @YuriyODonnell, @rygorous, @cmuratori, @mike_acton, @grumpygiant,
@krzysztofzablocki
krzysztofzablocki / gist:4396302
Last active November 24, 2021 19:17
Set symbol breakpoint on objc_msgSend then setup this debug command to log all methods called in iOS Simulator. If you want to do device debugging change esp+4 register to r0, esp+8 to r1 Found long ago somewhere on stackoverflow.
expr -- (void)printf("[%s, %s]\n",(char *) object_getClassName(*(long*)($esp+4)), (char *) *(long *)($esp+8) )