target-c: чрезвычайно странная и раздражающая проблема со строками - PullRequest
1 голос
/ 21 января 2011

Я работал над программой просмотра таблиц, и у меня есть функция, которая обрабатывает несколько данных из пользовательских настроек и данные ядра.программа анализирует эти вещи и возвращает URL-адрес.Вот код:

    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
 NSString *serverAdress = [prefs stringForKey:@"serverAdress"];
 serverAdress = [serverAdress stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
 [dateFormatter setDateFormat:@"dd.MM.yyyy"];

 NSDateFormatter *dateFormatter2 = [[NSDateFormatter alloc] init];
 [dateFormatter2 setDateFormat:@"dd.MM.yyyy HH:mm"];

 NSString *dateString = [dateFormatter stringFromDate:[NSDate date]];

 NSString *dateTimeString = [NSString stringWithFormat:@"%@ %@",dateString,[dashboardParameters attribute1]];

 NSTimeInterval dayInterval = [[dashboardParameters attribute2] intValue]*60*60*(-1);
 NSDate *date2 = [[dateFormatter2 dateFromString:dateTimeString] addTimeInterval:dayInterval];
 NSString *urlString = 
 [NSMutableString stringWithFormat:@"%@/webservices/service1.asmx/getHourlySales2?tarih2=%@&tarih1=%@&salesType=%@",
  serverAdress,
  dateTimeString,
  [dateFormatter2 stringFromDate:date2],
  [dashboardParameters itemOrder]
  ];
 urlString = [urlString stringByReplacingOccurrencesOfString:@" " withString:@"%20"]; 
 return urlString;

Все отлично работает, у меня нет проблем с получением данных.Но когда я выполняю код, я получаю этот вывод:

// server.dyndns.org/webservices/service1.asmx/getHourlySales2?tarih2=20.01.2011%2016:00&tarih1=19.01.2011% 2016: 00 & salesType = Hepsi / webservices / service1.asmx / getHourlySales2? Tarih2 = 21.01.2011% 2022: 00 & tarih1 = 21.01.2011% 2011: 00 & salesType = Hepsi

должно быть

// server.dyndns.org/webservices/service1.asmx/getHourlySales2?tarih2=20.01.2011%2016:00&tarih1=19.01.2011%2016:00&salesType=Hepsi

Но, как ни странно, программа добавляет

/ webservices / service1.asmx / getHourlySales2? Tarih2 = 21.01.2011% 2022: 00 & tarih1 = 21.01.2011% 2011: 00 & salesType = Hepsi

само собой после нормальной обработки.

Также еще одна важная вещь: код работает нормально, когда я удаляю

NSString *serverAdress = [prefs stringForKey:@"serverAdress"] из кода и ввожу serveradress вручную.

Помогите пожалуйста, все в программе работает нормально, но я застрял с этой проблемой.

Спасибо за помощь.

1 Ответ

0 голосов
/ 21 января 2011

Итак, что находится на serverAdress до , вы добавляете его в urlString. Похоже, что serverAdress содержит '//server.dyndns.org/webservices/service1.asmx/getHourlySales2?tarih2=20.01.2011%2016:00&tarih1=19.01.2011%2016:00&salesType=Hepsi'

...