NSString *locations=[[NSString alloc] init];
locations=[mainView getLocationText];
NSMutableArray *cs=[NSMutableArray arrayWithArray:[locations componentsSeparatedByString:@","]];
NSString *city=[[cs objectAtIndex:0] replaceOccurrencesOfString:@" " withString:@"+" options:NSCaseInsensitiveSearch range:NSMakeRange(0,[[cs objectAtIndex:0] length])];
NSString *state=[[cs objectAtIndex:1] replaceOccurrencesOfString:@" " withString:@"+" options:NSCaseInsensitiveSearch range:NSMakeRange(0,[[cs objectAtIndex:0] length])];
NSMutableString *otherParams = [[[NSMutableString alloc] initWithFormat:@"city=%@&state=%@&beds=%@&baths=%@&minprice=%@&maxprice=%@&searchType=%@&page=1",city,state,bedsVal,bathsVal,minPriceVal,maxPriceVal,propTypeVal] autorelease];
它给出错误:
尝试改变不可变对象 同 replaceOccurrencesOfString:withString:选择:范围:
空格不会被'+'替换
答案 0 :(得分:3)
我的初步答案不正确,您应该(根据Jasarien的回答)使用stringByReplacingOccurrencesOfString:withString:options:range
。
而不是replaceOccurrencesOfString:withString:options:range
答案 1 :(得分:2)
NSString
是不可变的。 replaceOccurrencesOfString:withString:options:range:
仅适用于NSMutableString
。
您应该使用的方法是:
stringByReplacingOccurrencesOfString:withString:options:range:
这是在不可变的字符串上实现的,即NSString
,并将返回一个包含您指定的替换的新字符串。