2 番目の URL のすべての特殊文字を適切にエスケープする必要があります。私が書いたユーティリティメソッドを使用して支援します:
+ (NSString *)encodeString:(NSString *)string {
NSString *result = (__bridge_transfer NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (__bridge CFStringRef)string, NULL, CFSTR("% '\"?=&+<>;:-#\\/~`!"), kCFStringEncodingUTF8);
return result;
}
それを(ヘルパークラスで、またはカテゴリに追加して)配置すると、次のことができます。
NSString *link = @"http://another.url";
NSString *escapedLink = [SomeUtility encodeString:link];
NSString *myURL = [NSString stringWithFormat:@"myapp://?type=url&url=%@", escapedLink];
このencodeString:
メソッドは、URL のクエリ文字列を作成するために使用する可能性のある URL パラメータ値を適切にエスケープするために使用する必要があることに注意してください。