objective-c:非常奇怪和恼人的字符串问题

时间:2011-01-21 15:25:11

标签: objective-c ios4 nsuserdefaults nsmutablestring

我一直在研究tableview程序,我有一个处理来自用户首选项和核心数据的数据的函数。程序解析这些东西并返回一个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 :(得分:0)

那么在之前将serverAdress 中的内容添加到urlString中。看起来好像serverAdress包含'//server.dyndns.org/webservices/service1.asmx/getHourlySales2?tarih2=20.01.2011%2016:00&tarih1=19.01.2011%2016:00&salesType=Hepsi'