4

コードは次のとおりです。

NSURL *newsUrl = [NSURL URLWithString:@"/Document/News/1593" relativeToURL:[NSURL URLWithString:@"http://exist.ru"]];

// Outputs "http://exist.ru/Document/News/1593"
NSLog(@"%@", [newsUrl absoluteString]);

// works
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[newsUrl absoluteString]]];

// doesn't work
//[[UIApplication sharedApplication] openURL:newsUrl];

Appleのバグですか?

4

3 に答える 3

2

NSLog(@"NEW %@", newsUrl)私が宣言する場所のXcode出力newUrl

NSURL *newsUrl = [NSURL URLWithString:@"/Document/News/1593" relativeToURL:[NSURL URLWithString:@"http://exist.ru"]]:

NSLog出力は

/Document/News/1593 -- http://exist.ru

しかし、 [newsUrl absoluteString]

NSLog出力は

http://exist.ru/Document/News/1593

[URLWithString: relativeToURL:]そのため、URL が別の形式で提供されていると思います。これが、結果が無効である理由です。

于 2012-08-15T12:25:12.800 に答える
-1

何を達成しようとしているのかは明確ではありませんが、潜在的に異なるホストまたはパスを使用して URL をプログラムで構築したい場合は、次のようなものではないでしょうか:

NSURL *newsUrl = [NSURL URLWithString:
 [NSString stringWithFormat:@"%@%@",@"http://exist.ru",@"/Document/News/1593"]];

[[UIApplication sharedApplication] openURL:newsUrl]; 
于 2012-08-15T19:12:52.350 に答える