Question: I am new to drawing use case and writing use case descriptions.

I have an Actor called `User` , an abstract usecase called `Work Type` and another use case called `Manager`. The usecase `Manager` has a generalized relationship with the `Work Type` use case.

I'm now writing the use case description for `Manager` use case. And what is the initiating Actor for this use case. Is it the Actor `User` ? or doesn't it have an initiating Actor ?

Note: I only want to know the initiating Actor for the use case `Manager`

![enter image description here](https://i.stack.imgur.com/omIYF.jpg)

Answer: 
You're correct in thinking that two mappings is the answer. Assuming you are using the newest versions of RestKit, something like the following will work.

Also keep in mind that in order to really leverage what RestKit has to offer, the JSON must be Key Value Coding compliant. For instance, in this example the JSON is wrapped in a "Response" key.

I just pulled this from a project I'm working on and changed all of the names. This should get you going on the right path.

```
RKObjectMapping *postObjectMapping = [RKObjectMapping requestMapping];
[postObjectMapping addAttributeMappingsFromDictionary:@{
 @"param1" : @"param1",
 @"param2" : @"param2"}];

RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:postObjectMapping objectClass:[PostObjectModel class] rootKeyPath:nil];

RKObjectMapping *returnedObjectMapping = [RKObjectMapping mappingForClass:[ReturnedModel class]];
[returnedObjectMapping addAttributeMappingsFromDictionary:@{
 @"returnedParam1" : @"returnedParam1",
 @"returnedParam2": @"returnedParam2",
 @"returnedParam3": @"returnedParam3"}];

RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:returnedObjectMapping pathPattern:nil keyPath:@"Response" statusCodes:[NSIndexSet indexSetWithIndex:200]];

RKObjectMapping *errorMapping = [RKObjectMapping mappingForClass:[RKErrorMessage class]];
[errorMapping addPropertyMapping:[RKAttributeMapping attributeMappingFromKeyPath:@"error" toKeyPath:@"errorMessage"]];

NSIndexSet *statusCodes = RKStatusCodeIndexSetForClass(RKStatusCodeClassClientError);
RKResponseDescriptor *errorDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:errorMapping pathPattern:nil keyPath:@"errors" statusCodes:statusCodes];

PostModel *objectToBePosted = [PostModel new];
[login setParam1:something];
[login setParam2:something];

RKObjectManager *objectManager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:@"http://BASEURLHERE"]];
[objectManager addRequestDescriptor:requestDescriptor];
[objectManager addResponseDescriptor:responseDescriptor];
[objectManager addResponseDescriptor:errorDescriptor];

NSMutableURLRequest *request = [objectManager requestWithObject:objectToBePosted method:RKRequestMethodPOST path:@"/REST/OF/PATH/GOES/HERE" parameters:nil];

RKObjectRequestOperation *operation = [objectManager objectRequestOperationWithRequest:request
    success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
        NSLog(@"Success block: %@", mappingResult);
    } failure: ^(RKObjectRequestOperation *operation, NSError *error) {
        NSLog(@"Failed with error: %@", [error localizedDescription]);
    }];

[objectManager enqueueObjectRequestOperation:operation];

```

}
The problem was solved by using RKObjectMapping in mElling´s answer as docksteaderluke suggested but only after I updated RestKit to version 0.20-pre6.