我一直在做tableview程序,我有一个函数可以处理来自用户首选项和核心数据的多个数据。该程序解析这些东西并返回一个url地址。继承人的代码:objective-c:极其奇怪和烦人的字符串问题
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 = 2011年1月19日%2016:00 & salesType = Hepsi/web服务/ Service1.asmx的/ getHourlySales2 tarih2 = 21.01.2011%2022:00 & tarih1 = 21.01.2011%2011:00 & salesType = Hepsi
它必须是
//server.dyndns.org/web服务/ Service1.asmx的/ getHourlySales2 tarih2 =二零一一年一月二十零日%2016年?00 & tarih1 = 2011年1月19日%2016年00 & salesType = Hepsi
但奇怪的程序添加
/web服务/service1.asmx/getHourlySales2?tarih2=21.01.2011%2022:00 & tarih1 = 21.01.2011%2011:00 & salesType = Hepsi
本身正常处理之后。
也是另一个重要的事情,代码运行正常,当我从代码中删除
NSString *serverAdress = [prefs stringForKey:@"serverAdress"]
并手动输入serveradress。
提供帮助,程序中的所有内容都能正常工作,但我仍然遇到这个问题。
感谢您的帮助。
有无你检查过它'[prefs stringForKey:@“serverAdress”]`给你你所期望的? – 2011-01-21 15:34:22
尝试为serverAdress放置一个`NSLog`,看看它给了你什么。服务器地址是否会在程序中的某处发生更改?如果没有,我只是将它硬编码为一个字符串,而不是搞乱'NSUserDefaults`。哦,顺便说一下,smidgeon并不重要,但是你可能想拼一下`serverAddress`。 :) – 2011-01-21 15:49:33