【发布时间】:2015-06-23 18:44:44
【问题描述】:
我花了好几个小时来翻译这个短代码。 目标 C:
NSString *urlStr = [request.URL absoluteString];
NSArray *urlParts = [urlStr componentsSeparatedByString:[NSString stringWithFormat:@"%@/", kREDIRECTURI]];
if (urlParts.count > 1)
{
urlStr = urlParts[1];
NSRange token = [urlStr rangeOfString:@"#access_token="];
if (token.location != NSNotFound)
{
vc.access_token = [urlStr substringFromIndex:NSMaxRange(token)];
}
}
我尝试过的:
斯威夫特:
var urlParts : NSArray = urlStr!.componentsSeparatedByString("\(kREDIRECTURI)")
if urlParts.count > 1
{
urlStr = urlParts[1] as? String
var token = urlStr!.rangeOfString("#access_token=", options: NSStringCompareOptions.allZeros) as NSRange!
if token != nil
{
var vc = ViewController()
urlStr!.substringFromIndex(NSMaxRange(token))!
}
}
有什么想法吗?
【问题讨论】:
-
什么不起作用?一点是您没有在 swift 代码中设置 vc.access_token。
-
@Bijington 我刚刚删除了该行,因为我知道如何翻译其余部分,哈哈,我只是想显示更少的代码。我无法解决的行是: NSArray *urlParts = [urlStr componentsSeparatedByString:[NSString stringWithFormat:@"%@/", kREDIRECTURI]];和
-
@Bijington vc.access_token = [urlStr substringFromIndex:NSMaxRange(token)];
-
您不能在这一行中将 Range 转换为 NSRange。 var token = urlStr!.rangeOfString("#access_token=", options: NSStringCompareOptions.allZeros) as NSRange!
-
@EpicByte 是的,我知道,我正在努力寻找正确的方法。
标签: ios objective-c swift nsrange