我很难让NSURL
工作,当我在转换为URL
之前创建最终字符串时,它会在字符串末尾添加不需要的字符,为什么会发生这种情况,我该如何解决?
这是我的代码:
NSString *remotepathstring = [[NSString alloc] init];
remotepathstring=newdata.remotepath;
NSLog(@"remotepathstring = %@",remotepathstring);
NSString *remotepathstringwithescapes = [remotepathstring stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"remotepathstring = %@",remotepathstringwithescapes);
remotepathURL =[NSURL URLWithString:remotepathstringwithescapes];
NSLog(@"RemotePathUrl=%@",remotepathURL);
记录输出如下:
"remotepathstring = http://nalahandthepinktiger.com/wp-content/uploads/nalah-sheet-5.pdf"
"remotepathstring = http://nalahandthepinktiger.com/wp-content/uploads/nalah-sheet-5.pdf%E2%80%8E"
"RemotePathUrl=http://nalahandthepinktiger.com/wp-content/uploads/nalah-sheet-5.pdf%E2%80%8E"
答案 0 :(得分:0)
序列%E2%80%8E
是Unicode LEFT-TO-RIGHT MARK
。这在您的原始remotepathstring
中有效,但在通过NSLog
打印出来时不可见。
问题变成:newdata.remotepath
首先如何填充?沿着这条线的某处,听起来你需要对输入字符串进行一些额外的清理以去除这样的字符。
与核心问题无关,似乎你是Objective-C的新手。这段代码多余且浪费:
NSString *remotepathstring = [[NSString alloc] init];
remotepathstring=newdata.remotepath;
您创建一个字符串,只是立即将其丢弃并将其替换为另一个字符串。如果您不使用ARC,则会出现额外的泄漏问题!而是做:
NSString *remotepathstring = newdata.remotepath;