从单词之间删除空格并替换为'+'

时间:2011-06-03 09:25:41

标签: iphone nsstring

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:选择:范围:

空格不会被'+'替换

2 个答案:

答案 0 :(得分:3)

我的初步答案不正确,您应该(根据Jasarien的回答)使用stringByReplacingOccurrencesOfString:withString:options:range。 而不是replaceOccurrencesOfString:withString:options:range

答案 1 :(得分:2)

NSString是不可变的。 replaceOccurrencesOfString:withString:options:range:仅适用于NSMutableString

您应该使用的方法是:

stringByReplacingOccurrencesOfString:withString:options:range:

这是在不可变的字符串上实现的,即NSString,并将返回一个包含您指定的替换的新字符串。