@ü.li:Listing 1: Beispiel zum Method Swizzling @li:NSUserDefaults+Timing.h: #import @interface NSUserDefaults(Timing) @end NSUserDefaults+Timing.m: #import "NSUserDefaults+Timing.h" #import // Needed for method swizzling @implementation NSUserDefaults(Timing) - (BOOL)swizzled_synchronize { NSDate *started; BOOL returnValue; started = [NSDate date]; returnValue = [self swizzled_synchronize]; NSLog(@"Writing user defaults took %f seconds.", [[NSDate date] timeIntervalSinceDate:started]); return returnValue; } @end + (void)load { Method original, swizzled; original = class_getInstanceMethod(self, @selector(synchronize)); swizzled = class_getInstanceMethod(self, @selector(swizzled_synchronize)); method_exchangeImplementations(original, swizzled); } @ü.li:Listing 2: Auszug aus loader.h @li:#define LC_LOAD_DYLIB 0xc /* load a dynamically linked shared library */ ... ... ... /* * load a dynamically linked shared library that is allowed to be missing * (all symbols are weak imported). */ #define LC_LOAD_WEAK_DYLIB (0x18 | LC_REQ_DYLD)