Codebase list agenda.app / 62359c16-21b0-45cd-bc59-cb9bfad975fe/main InvocationOperation.m
62359c16-21b0-45cd-bc59-cb9bfad975fe/main

Tree @62359c16-21b0-45cd-bc59-cb9bfad975fe/main (Download .tar.gz)

InvocationOperation.m @62359c16-21b0-45cd-bc59-cb9bfad975fe/mainraw · history · blame

/* emacs buffer mode hint -*- objc -*- */

#import <Foundation/Foundation.h>
#import "InvocationOperation.h"

@implementation InvocationOperation
- (id)initWithInvocation:(NSInvocation *)inv
{
  if ((self = [super init]))
    _invocation = [inv retain];
  return self;
}
- (id)initWithTarget:(id)target selector:(SEL)sel object:(id)arg
{
  NSInvocation *inv;

  inv = [NSInvocation invocationWithMethodSignature:[target methodSignatureForSelector:sel]];
  [inv setTarget:target];
  [inv setSelector:sel];
  if (arg)
    [inv setArgument:&arg atIndex:2];
  return [[InvocationOperation alloc] initWithInvocation:inv];
}
- (void)dealloc
{
  [_invocation release];
  [super dealloc];
}
- (void)main
{
  NSDebugLLog(@"SimpleAgenda", @"%@", [_invocation description]);
  [_invocation invoke];
}
@end