【发布时间】:2013-07-09 21:22:11
【问题描述】:
我想创建字符串,就像我的意思是想用查询字符串创建 url
NSString urlString = @"http://.com/*.aspx?log="+txtMail.text+"&pass="+txtPass.text;
但我在 nsstring 中得到了二进制表达式 NSstring 的无效操作数。任何身体帮助?
【问题讨论】:
我想创建字符串,就像我的意思是想用查询字符串创建 url
NSString urlString = @"http://.com/*.aspx?log="+txtMail.text+"&pass="+txtPass.text;
但我在 nsstring 中得到了二进制表达式 NSstring 的无效操作数。任何身体帮助?
【问题讨论】:
我怀疑您对 Objective-C 很陌生。 Objective-C 与 C++ 不同。
你要使用的代码行是:
NSString * urlString = [NSString stringWithFormat: @"http://.com/*.aspx?log=%@&pass=%@", txtMail.text, txtPass.text];
您可能还需要对 urlString 进行百分比转义以创建合法 URL,您可以通过以下方式完成:
NSString * escapedUrlString = [urlString stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
【讨论】:
stringByAddingPercentEscapesUsingEncoding: 的调用在txtMail.text 和txtPass.text 而不是整个URL 上完成吗?
stringByAddingPercentEscapesUsingEncoding”的两次单独调用)?
txtMail.text 中输入类似foo&bar=zzz 的内容,则生成的URL 将无法正确转义。该 URL 将以额外的 bar 参数结束。我希望foo&bar=zzz 的值会被转义为foo%26bar%3Dzzz。
-stringByAddingPercentEscapesUsingEncoding: 没有足够的上下文来知道你想要什么。相反,下拉到CFURLCreateStringByAddingPercentEscapes() 并明确告诉它为您转义& 和= 字符。也有很多关于这方面的开源。