在我正在编写的应用程序中,我有一些代码如下:
NSWorkspace* ws = [NSWorkspace sharedWorkspace]; NSString* myurl = @"http://www.somewebsite.com/method?a=%d"; NSURL* url = [NSURL URLWithString:myurl]; [ws openURL:url];
主要区别在于myurl来自我无法控制的某个地方.注意URL中的%d不完全正确,意味着URLWithString失败,返回nil.
处理这个问题的"正确"方法是什么?我是否需要解析字符串并正确编码参数?或者在Cocoa中有一些聪明的方法可以为我做所有艰苦的工作吗?
我不确定这是否正是您正在寻找的,但NSString中有一个方法可以清理URL:
stringByAddingPercentEscapesUsingEncoding: