stringByReplacingOccurrencesOfString不起作用

时间:2013-03-04 07:19:49

标签: iphone ios ipad nsstring

我想用一些其他组件替换myurl中的一些组件,但它不起作用..

以下是我的代码段:

NSString *Url =@"http://www.myData.com/pageId=aaa&pageSize=bbb&page=2"

在上面的网址中,我想将aaa替换为str1,将bbb替换为str2 ..

    [Url stringByReplacingOccurrencesOfString:@"aaa" withString:str1];
    [Url stringByReplacingOccurrencesOfString:@"bbb" withString:str2];

    NSLog(@"Final Url = %@",Url);

最后,当我看到我的日志时,Final Url不会将aaa替换为str1bbb替换为str2 ..

感谢您阅读...

3 个答案:

答案 0 :(得分:13)

某些字符串函数采用就地替换,但其他字符串函数会返回替换字符串。

下面的完整代码:

NSString *Url = @"http://www.myData.com/pageId=aaa&pageSize=bbb&page=2";
Url = [Url stringByReplacingOccurrencesOfString:@"aaa" withString:str1];
Url = [Url stringByReplacingOccurrencesOfString:@"bbb" withString:str2];

NSLog(@"Final Url = %@",Url);

答案 1 :(得分:13)

方法stringByReplacingOccurrencesOfString:withString:返回NSString,您需要存储该方法。

您只是转储返回的值并期望更改调用者。

您需要使用:

Url=[Url stringByReplacingOccurrencesOfString:@"aaa" 
                                   withString:str1];
Url=[Url stringByReplacingOccurrencesOfString:@"bbb" 
                                   withString:str2];

答案 2 :(得分:2)

使用下面的代码,它在我的最后完美运作。我测试了它。

NSString *Url =@"http://www.myData.com/pageId=aaa&pageSize=bbb&page=2";
    NSString *str1 = @"str1";
    NSString *str2 = @"str2";

    Url = [Url stringByReplacingOccurrencesOfString:@"aaa" withString:str1];
    Url = [Url stringByReplacingOccurrencesOfString:@"bbb" withString:str2];

    NSLog(@"Final Url = %@",Url);

输出将是:最终网址= http://www.myData.com/pageId=str1&pageSize=str2&page=2

一切顺利!!!