1

myurl の一部のコンポーネントを他のコンポーネントに置き換えたいのですが、うまくいきません..

ここに私のコードスニペットがあります:

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

aaa上記の URLでstr1、 とbbbstr2..に置き換えたい

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

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

そして最後にログを見ると、 andに置き換えられFinal Urlません..aaastr1bbbstr2

読んでくれてありがとう...

4

3 に答える 3

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);
于 2013-03-04T07:21:38.310 に答える
13

The method stringByReplacingOccurrencesOfString:withString: returns NSString and you need to store that one.

You are simply dumping the returned value and expecting the caller to be changed.

You need to use :

Url=[Url stringByReplacingOccurrencesOfString:@"aaa" 
                                   withString:str1];
Url=[Url stringByReplacingOccurrencesOfString:@"bbb" 
                                   withString:str2];
于 2013-03-04T07:23:38.767 に答える
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);

出力は次のようになります: 最終 URL = http://www.myData.com/pageId=str1&pageSize=str2&page=2

ではごきげんよう !!!

于 2013-03-04T07:30:04.113 に答える