1

次のように使用できるマクロが必要です。

CREATE_URL(@"{SOME-TOKEN}/some/url/path");

マクロは、トークンのアナログを次の呼び出しに置き換える必要があります。

NSString *initialURL = @"{SOME-TOKEN}/some/url/path";
[initialURL stringByReplacingOccurencesOfString:@"{SOME-TOKEN}" withString:@"http://server.com"]

したがって、次のようにマクロを定義しましたが、残念ながら機能しません。

#define CREATE_URL(url) [##url stringByReplacingOccurencesOfString:@"{SOME-TOKEN}" withString:@"http://server.com"];

マクロを使用すると、次の 2 つのエラーが発生します。

Missing '[' at start of message send expression
Pasting formed '[@', an invalid preprocessing token
4

1 に答える 1

4

なぜこれではないのですか?

#define CREATE_URL(url) [url stringByReplacingOccurencesOfString:@"{SOME-TOKEN}" withString:@"http://server.com"]

正常に動作するはずです... なぜ ## と ;?

于 2012-05-03T16:32:43.027 に答える