Мне нужно, чтобы мой код был скомпилирован в последовательности

Недавно я столкнулся с проблемой при разработке xcode.
Эта проблема:
Это UIButton, который показывает True или False логическое значение после "Touch up inside". Сначала я получу неправильный логический результат и сразу после второго клика верный результат.
Мой взгляд:
Я выяснил причину этого, то есть "порядок, в котором Xcode компилирует код". Я пытался разместить сообщения NSLog в стороне кода сверху вниз с сообщениями числовой последовательности. И все эти сообщения NSLog, которые вышли после компиляции, похожи на 1->2->4>3. PS: я бы хотел, чтобы это было 1->2->3->4.

Я попробовал NSLocks, но это не сработало так, как хотелось бы. И я также проверял с NSLog, что сообщения от PHP верны каждый раз, когда я запрашивал его. Ниже приведен код, который выводит логическое значение:

#import "SignUpVC.h"
#import "AFHTTPClient.h"

@interface SignUpVC ()
@end
@implementation SignUpVC
@synthesize userNameSU, userNameNotification, userPasswordSU,

userPasswordNotification, userPasswordVerify, passwordVerifyNotification,

userEmailSU, userEmailNotification, userGender, userPurpose, JSONArray;

- (void)viewDidLoad     {
[super viewDidLoad];
}

- (IBAction)signUp:(id)sender {
//A variable whose value is from userName textField.
NSString *userName = userNameSU.text;

//Verify account is the inputed account exists in database
    if(  !([self validateAccountDuplication:userName])  ) {
    NSLog(@"This account name had already existed");
    }
   else {
       NSLog(@"You may use this account:)");
   }
}  //end of button method.

- (BOOL) validateAccountDuplication:(NSString *)candidate {
//Verify Duplication.
NSURL *url = [NSURL URLWithString:@"http://140.127.220.79"];
NSDictionary *postContent = [NSDictionary dictionaryWithObjectsAndKeys:candidate, @"account", nil];
AFHTTPClient *client = [AFHTTPClient clientWithBaseURL:url];
[client postPath:@"signInAccountCheck.php" parameters:postContent
            success:^(AFHTTPRequestOperation *operation, id responseObject) {
            NSLog(@"Successfully connected and data-passed to PHP, from validate account method.");
            NSString *response = [[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding];
            NSLog(@"From validate account method.----response:%@",response);
            JSONArray = [NSJSONSerialization JSONObjectWithData:responseObject options:kNilOptions error:nil];
            }
            failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                NSLog(@"Failed to connected to PHP, from MainVC");
            }
];
return [[[JSONArray objectAtIndex:0] objectForKey:@"result"] isEqualToString:@"UNDUPLICATED"];
}



Выход:
(Я получил первые 3 строки, когда я впервые нажал кнопку, и во второй раз, когда я нажал кнопку, я получил следующие 3 строки. (Ввод textField пуст, который должен иметь вывод: [{"result":"UNDUPLICATED"}], что правильно. Но обратите внимание на первую строку результата двух разделов. Он вывел неправильный результат....

(результат первого нажатия на кнопку)
2014-07-30 Это имя аккаунта уже существовало
2014-07-30 Успешное подключение и передача данных в PHP из метода проверки учетной записи.
2014-07-30 Из метода проверки учетной записи.---- ответ: [{"result": "UNDUPLICATED"}]

(результат второго нажатия на кнопку)
2014-07-30 Вы можете использовать этот аккаунт:)
2014-07-30 Успешное подключение и передача данных в PHP из метода проверки учетной записи.
2014-07-30 Из метода проверки учетной записи.---- ответ: [{"result": "UNDUPLICATED"}]


Спасибо всем заранее за ответ.:)
С уважением,
Бен

0 ответов

Другие вопросы по тегам