libs-base/Tests/base/NSNotification/dynamic.m
Richard Frith-MacDonald 360e1f6ec6 some small fixups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@36616 72102866-910b-0410-8b05-ffd578937521
2013-05-13 07:09:41 +00:00

37 lines
788 B
Objective-C

#import <Foundation/Foundation.h>
#include <objc/runtime.h>
#import "ObjectTesting.h"
static BOOL notifiedCurrent = NO;
@interface Toggle : NSObject
@end
@implementation Toggle
- (void) foo: (NSNotification*)n
{
notifiedCurrent = NO;
}
- (void) bar: (NSNotification*)n
{
notifiedCurrent = YES;
}
@end
int main(void)
{
NSNotificationCenter *nc;
id t = [Toggle new];
[NSAutoreleasePool new];
nc = [NSNotificationCenter new];
[nc addObserver: t selector: @selector(foo:) name: nil object: nil];
class_replaceMethod([Toggle class],
@selector(foo:),
class_getMethodImplementation([Toggle class], @selector(bar:)),
"v@:@");
[nc postNotificationName: @"foo" object: t];
[t release];
PASS(YES == notifiedCurrent, "implementation not cached");
return 0;
}