Objective-C не может использовать данные stringWithContentsOfURL в выражении IF - PullRequest
1 голос
/ 10 октября 2009

Привет, я пытаюсь проверить связь с сервером и проверить версию приложения - пока все идет хорошо:

 NSURL *url = [NSURL URLWithString:@"http://thetalkingcloud.com/static/ping_desktop_app.php?v=1.1"];
  NSError *theNetworkError;
  NSString *content = [NSString stringWithContentsOfURL:url encoding:NSASCIIStringEncoding error:&theNetworkError];
  //make sure something was returned
  if (!content) {
   //didn't connect
   //my code that goes here is all fine and works
  } else {
//there was some content returned by the server
//this NSLog prints out the expected data ('success' without the quotes)
   NSLog(@"server returned data: >|%@|<", content);
//PROBLEM:
//neither of these two EVER become true, even when the server DOES return success or update
   //connected, check what the server returned
   if (content == @"success") {
    NSLog(@"all went perfect");
   } else if (content == @"update") {
    NSLog(@"version error");
   }
  }

Заявления IF по какой-то причине не работают, кто-нибудь может мне помочь, пожалуйста? Спасибо.

Ответы [ 2 ]

2 голосов
/ 10 октября 2009

Вы не проверяете содержимое content с помощью своего текущего условного оператора, вы проверяете, является ли он действительным объектом / указателем, а не nil, что является (допустимым), поскольку вы только что объявили его.

Используйте метод NSString length и проверьте на 0 (или isEqualToString:)

Также смотрите этот предыдущий вопрос для другой альтернативы.

2 голосов
/ 10 октября 2009

Используйте метод isEqualToString:, а не равенство указателей (==).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...