Skip to content

Instantly share code, notes, and snippets.

View Koze's full-sized avatar
:octocat:
Refactoring

Koze Koze

:octocat:
Refactoring
View GitHub Profile
@Koze
Koze / gist:4273999
Created December 13, 2012 04:18
Reverse NSArray
NSArray *reversedArray = array.reverseObjectEnumerator.allObjects;
@Koze
Koze / gist:4274042
Created December 13, 2012 04:31
Hook NSClassFromString
#import "objc/runtime.h"
Class NSClassFromString(NSString *aClassName) {
NSLog(@"%@", aClassName);
id class = objc_getClass(aClassName.UTF8String);
return class;
}
@Koze
Koze / gist:4325186
Created December 18, 2012 05:02
Mark > Play > In to Out ⇧] on Final Cut Pro 7 (AppleScript)
tell application "Final Cut Pro" to activate
tell application "System Events"
if UI elements enabled is false then
keystroke "]" using shift down
else
tell process "Final Cut Pro"
--click menu item "In to Out" of menu 1 of menu item "Play" of menu "Mark" of menu bar 1
click menu item 1 of menu 1 of menu item 21 of menu 6 of menu bar 1
end tell
end if
@Koze
Koze / NSUserDefaults+RegisterDefault.m
Last active December 14, 2015 13:59
Registering default value for NSUserDefaults with individual key.
@implementation NSUserDefaults (RegisterDefault)
- (void)registerDefaultObject:(id)value forKey:(NSString *)defaultName {
NSMutableDictionary *mDict = [self volatileDomainForName:NSRegistrationDomain].mutableCopy;
[mDict setObject:value forKey:defaultName];
[self setVolatileDomain:mDict forName:NSRegistrationDomain];
}
@end
@Koze
Koze / gist:6785077
Created October 1, 2013 21:04
Switch language in app
// select language from application's localizations
NSBundle *mainBundle = [NSBundle mainBundle];
NSArray *localizations = mainBundle.localizations;
NSString *localization = localizations.lastObject;
// search bundle contains Localizable.string
NSURL *URL = [mainBundle URLForResource:@"Localizable" withExtension:@"strings" subdirectory:nil localization:localization];
NSBundle *bundle = [NSBundle bundleWithURL:URL.URLByDeletingLastPathComponent];
// get localized string from bundle
@Koze
Koze / gist:10550725
Last active May 30, 2018 12:22
List of monospace font
// UIFontDescriptor on iOS 7 or later
NSDictionary *traitsAttributes = @{UIFontSymbolicTrait: @(UIFontDescriptorTraitMonoSpace)};
NSDictionary *fontAttributes = @{UIFontDescriptorTraitsAttribute: traitsAttributes};
UIFontDescriptor *fontDescriptor = [UIFontDescriptor fontDescriptorWithFontAttributes:fontAttributes];
NSArray *array = [fontDescriptor matchingFontDescriptorsWithMandatoryKeys:nil];
for (UIFontDescriptor *descriptor in array) {
NSLog(@"%@", descriptor.postscriptName);
// NSLog(@"%@", [descriptor objectForKey:UIFontDescriptorNameAttribute]);
// NSLog(@"%@", [descriptor objectForKey:UIFontDescriptorVisibleNameAttribute]);
@Koze
Koze / gist:b50d187fed615772b974
Last active August 29, 2015 14:16
JavaScript for Automation Objective-C bridge Sample
ObjC.import('Cocoa')
//var array = $.NSArray.arrayWithObjects($('jp'), $('us'), $('es'), $('ru'));
var array = $(['jp', 'us', 'es', 'ru']);
for (var i=0; i<array.count; i++) {
var string = array.objectAtIndex(i);
var URLString = $.NSString.stringWithFormat('http://store.apple.com/%@/product/MB110CH/B/', string);
var URL = $.NSURL.URLWithString(URLString)
$.NSWorkspace.sharedWorkspace.openURL(URL)
}
@Koze
Koze / Assert.m
Last active August 29, 2015 14:18
NSAssert, NSCAssert
// NSAssert can be used in method
- (void)method
{
NSAssert(false, @"message");
}
// NSCAssert can be used in function
void func()
{
NSCAssert(false, @"message");
@Koze
Koze / DecimalNumberString.m
Last active April 19, 2017 06:25
NSString contains only decimal numbers
+ (BOOL)containsOnlyDecimalNumbers1:(NSString *)string
{
NSCharacterSet *characterSet = [NSCharacterSet characterSetWithCharactersInString:string];
return [[NSCharacterSet decimalDigitCharacterSet] isSupersetOfSet:characterSet];
}
+ (BOOL)containsOnlyDecimalNumbers2:(NSString *)string
{
NSCharacterSet *characterSet = [NSCharacterSet decimalDigitCharacterSet].invertedSet;
return [string rangeOfCharacterFromSet:characterSet].length == 0;
@Koze
Koze / PrintMethodPropertyIvar.m
Created April 4, 2015 15:46
Print Method List, Property List, and Ivar List
#import <objc/runtime.h>
void PrintMethodList(Class cls) {
printf("// Method List of %s\n", class_getName(cls));
unsigned int outCount;
Method *methodList = class_copyMethodList(cls, &outCount);
for (unsigned int i=0; i<outCount; i++) {
Method m = methodList[i];
SEL sel = method_getName(m);
printf("%s\n", sel_getName(sel));