在Cocoa应用程序中打开非标准URL

Ste*_*ton 6 macos cocoa objective-c

在我正在编写的应用程序中,我有一些代码如下:

NSWorkspace* ws = [NSWorkspace sharedWorkspace];
NSString* myurl = @"http://www.somewebsite.com/method?a=%d";

NSURL* url = [NSURL URLWithString:myurl];

[ws openURL:url];
Run Code Online (Sandbox Code Playgroud)

主要区别在于myurl来自我无法控制的某个地方.注意URL中的%d不完全正确,意味着URLWithString失败,返回nil.

处理这个问题的"正确"方法是什么?我是否需要解析字符串并正确编码参数?或者在Cocoa中有一些聪明的方法可以为我做所有艰苦的工作吗?

amr*_*rox 8

我不确定这是否正是您正在寻找的,但NSString中有一个方法可以清理URL:

stringByAddingPercentEscapesUsingEncoding: