Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -(int) registerUser
- {
- self.responseValue = 000; //Notice I set this to 000 at start of method
- AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
- manager.requestSerializer = [AFJSONRequestSerializer serializer];
- NSDictionary *parameters = @{ @"Username": @"SomeUsername" };
- [manager POST:@"http://XXX/register"
- parameters:parameters
- success:^(AFHTTPRequestOperation *operation, id responseObject)
- {
- NSLog(@"JSON: %@", responseObject);
- NSError *err = nil;
- self.responseValue = [[responseObject objectForKey:@"res"] intValue];
- //Note: This^ value returns 99 and NSLogs confirm this
- }
- failure:^(AFHTTPRequestOperation *operation, NSError *err)
- {
- NSLog(@"Error: %@", err);
- }];
- return self.responseValue; //This will return 000 and never 99!
- }
- - (void)registerUserWithCompletion:(void (^)(int responseValue, NSError *error))completion
- {
- AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
- manager.requestSerializer = [AFJSONRequestSerializer serializer];
- NSDictionary *parameters = @{ @"Username": @"SomeUsername" };
- [manager POST:@"http://XXX/register"
- parameters:parameters
- success:^(AFHTTPRequestOperation *operation, id responseObject)
- {
- NSLog(@"JSON: %@", responseObject);
- int responseValue = [[responseObject objectForKey:@"res"] intValue];
- if (completion)
- completion(responseValue, nil);
- }
- failure:^(AFHTTPRequestOperation *operation, NSError *err)
- {
- NSLog(@"Error: %@", err);
- if (completion)
- completion(-1, err); // I don't know what you want to return if it failed, but handle it appropriately
- }];
- }
- [self registerUserWithCompletion:^(int responseValue, NSError *error) {
- if (error)
- NSLog(@"%s: registerUserWithCompletion error: %@", __FUNCTION__, error);
- else
- NSLog(@"%d", responseValue);
- // do whatever you want with that responseValue here, inside the block
- }];
- // Needless to say, don't try to use the `responseValue` here, because
- // `registerUserWithCompletion` runs asynchronously, and you will probably
- // hit this line of code well before the above block is executed. Anything
- // that is dependent upon the registration must called from within the above
- // completion block, not here after the block.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement