1 //---------------------------------------------------------------------------------------
3 // Copyright (c) 2009 by Mulle Kybernetik. See License file for details.
4 //---------------------------------------------------------------------------------------
6 #import "NSMethodSignature+OCMAdditions.h"
7 #import "OCMReturnValueProvider.h"
10 @implementation OCMReturnValueProvider
12 - (id)initWithValue:(id)aValue
15 returnValue = [aValue retain];
21 [returnValue release];
25 - (void)handleInvocation:(NSInvocation *)anInvocation
27 const char *returnType = [[anInvocation methodSignature] methodReturnTypeWithoutQualifiers];
28 if(strcmp(returnType, @encode(id)) != 0)
29 @throw [NSException exceptionWithName:NSInvalidArgumentException reason:@"Expected invocation with object return type. Did you mean to use andReturnValue: instead?" userInfo:nil];
30 [anInvocation setReturnValue:&returnValue];