Skip to content

Instantly share code, notes, and snippets.

View trojanfoe's full-sized avatar

Andy Duplain trojanfoe

  • Wickham, Hampshire, UK.
View GitHub Profile
@trojanfoe
trojanfoe / NSArray unrecognized selector exception
Last active December 22, 2015 03:29
NSMutableArray from NSArray copy
#import <Foundation/Foundation.h>
int main(int argc, const char **argv) {
@autoreleasepool {
NSMutableArray *mutableArray;
NSString *str = @"one two three";
mutableArray = [[str componentsSeparatedByString:@" "] copy];
[mutableArray addObject:@"four"];
for (NSString *s in mutableArray) {
NSLog(@"%@", s);
$ cat locktest.m
#import <Foundation/Foundation.h>
@interface Locker : NSObject {
NSRecursiveLock *_lock;
}
- (void)setLock:(NSRecursiveLock *)lock;
@end
@implementation Locker
@trojanfoe
trojanfoe / dateiter.m
Last active January 3, 2016 11:09
Objective-C NSDate example of checking how many times a day-of-the-month appears between two dates. See: http://stackoverflow.com/questions/21161125/how-many-times-a-specific-day-has-passed-between-two-dates Compile with: clang -g -o dateiter dateiter.m -fobjc-arc -framework Foundation
#import <Foundation/Foundation.h>
static void nextMonth(NSDateComponents *comps) {
NSInteger month = [comps month];
if (month == 12) {
[comps setYear:[comps year] + 1];
[comps setMonth:1];
} else {
[comps setMonth:month + 1];
}
#import <Foundation/Foundation.h>
@interface ClassA : NSObject
@property NSMutableString *string;
- (void)changeString;
- (void)printString;
@end
2014-01-21 14:57:39.317 getifaddrs[31705:707] name=lo0, family=30, address=fe80::1
2014-01-21 14:57:39.319 getifaddrs[31705:707] name=lo0, family=2, address=127.0.0.1
2014-01-21 14:57:39.319 getifaddrs[31705:707] name=lo0, family=30, address=::1
2014-01-21 14:57:39.320 getifaddrs[31705:707] name=en1, family=30, address=fe80::fa1a:67ff:fe0e:30eb
2014-01-21 14:57:39.320 getifaddrs[31705:707] name=en1, family=2, address=192.168.1.100
@trojanfoe
trojanfoe / Compilation and running
Created February 20, 2014 11:50
Sleeping for a set period of time while running the runloop
$ clang -DDEBUG=1 -g -fobjc-arc -o rlsleep rlsleep.m -framework Foundation
$ ./rlsleep
2014-02-20 11:45:36.481 rlsleep[95410:707] Before 2014-02-20 11:45:36 +0000
2014-02-20 11:45:37.475 rlsleep[95410:707] Tick
2014-02-20 11:45:38.476 rlsleep[95410:707] Tick
2014-02-20 11:45:39.475 rlsleep[95410:707] Tick
2014-02-20 11:45:40.475 rlsleep[95410:707] Tick
2014-02-20 11:45:41.475 rlsleep[95410:707] Tick
2014-02-20 11:45:42.476 rlsleep[95410:707] Tick
2014-02-20 11:45:43.476 rlsleep[95410:707] Tick
@trojanfoe
trojanfoe / vslice.py
Last active August 29, 2015 13:56
Python script to split an image into vertical slices. Useful for processing background images (i.e. cocos2d, etc.)
#!/usr/bin/env python
#
# Slice an image into the specified number of vertical slices.
#
# Usage: vslice.py [options] image output-path num-slices
# Use --help for a list of options.
#
# Andy Duplain <[email protected]> 26-Feb-2014
#
@trojanfoe
trojanfoe / osstatus.m
Created May 17, 2014 06:46
Print the meaning of an OSX OSStatus code value
#import <Foundation/Foundation.h>
#import <CoreServices/CoreServices.h>
int main(int argc, const char **argv)
{
@autoreleasepool {
for (int i = 1; i < argc; i++) {
char *endp;
long value = strtol(argv[i], &endp, 10);
if (*endp == '\0') {
@trojanfoe
trojanfoe / Test results
Last active August 29, 2015 14:05
Demonstrate changing the directory to the executable's path using C++
--- Source/cpptinkering ‹master*➔ ?› » make
clang++ -DDEBUG=1 -g -Wall -std=c++11 -stdlib=libc++ -o setcwd setcwd.cpp -lstdc++
--- Source/cpptinkering ‹master*➔ ?› » ./setcwd
Changing to directory '.'
This is a one.
This is line two.
This is line three.
--- Source/cpptinkering ‹master*➔ ?› » cd /
--- / » /Users/andy/Source/cpptinkering/setcwd
Changing to directory '/Users/andy/Source/cpptinkering'
@trojanfoe
trojanfoe / build-png.sh
Created September 4, 2014 20:24
Script to build libpng for iOS
#!/bin/sh
dobuild=1
docopy=1
doclean=1
version=1.6.9
srcdir=libpng-${version}
srcfile=${srcdir}.tar.gz
srctarball=http://sourceforge.net/projects/libpng/files/libpng16/${version}/${srcfile}/download
outdir=$(cd ../external-deps/png; pwd)