Advertisement
Guest User

Untitled

a guest
Apr 20th, 2014
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. -(int) registerUser
  2. {
  3. self.responseValue = 000; //Notice I set this to 000 at start of method
  4.  
  5. AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
  6. manager.requestSerializer = [AFJSONRequestSerializer serializer];
  7.  
  8. NSDictionary *parameters = @{ @"Username": @"SomeUsername" };
  9.  
  10. [manager POST:@"http://XXX/register"
  11. parameters:parameters
  12. success:^(AFHTTPRequestOperation *operation, id responseObject)
  13. {
  14. NSLog(@"JSON: %@", responseObject);
  15. NSError *err = nil;
  16.  
  17. self.responseValue = [[responseObject objectForKey:@"res"] intValue];
  18. //Note: This^ value returns 99 and NSLogs confirm this
  19. }
  20. failure:^(AFHTTPRequestOperation *operation, NSError *err)
  21. {
  22. NSLog(@"Error: %@", err);
  23. }];
  24.  
  25. return self.responseValue; //This will return 000 and never 99!
  26. }
  27.  
  28. - (void)registerUserWithCompletion:(void (^)(int responseValue, NSError *error))completion
  29. {
  30. AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
  31. manager.requestSerializer = [AFJSONRequestSerializer serializer];
  32.  
  33. NSDictionary *parameters = @{ @"Username": @"SomeUsername" };
  34.  
  35. [manager POST:@"http://XXX/register"
  36. parameters:parameters
  37. success:^(AFHTTPRequestOperation *operation, id responseObject)
  38. {
  39. NSLog(@"JSON: %@", responseObject);
  40.  
  41. int responseValue = [[responseObject objectForKey:@"res"] intValue];
  42.  
  43. if (completion)
  44. completion(responseValue, nil);
  45. }
  46. failure:^(AFHTTPRequestOperation *operation, NSError *err)
  47. {
  48. NSLog(@"Error: %@", err);
  49.  
  50. if (completion)
  51. completion(-1, err); // I don't know what you want to return if it failed, but handle it appropriately
  52. }];
  53. }
  54.  
  55. [self registerUserWithCompletion:^(int responseValue, NSError *error) {
  56. if (error)
  57. NSLog(@"%s: registerUserWithCompletion error: %@", __FUNCTION__, error);
  58. else
  59. NSLog(@"%d", responseValue);
  60.  
  61. // do whatever you want with that responseValue here, inside the block
  62. }];
  63.  
  64. // Needless to say, don't try to use the `responseValue` here, because
  65. // `registerUserWithCompletion` runs asynchronously, and you will probably
  66. // hit this line of code well before the above block is executed. Anything
  67. // that is dependent upon the registration must called from within the above
  68. // completion block, not here after the block.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement