我想了好幾個小時來翻譯這個短代碼。 目標C:將Objective-C中的rangeOfString轉換爲Swift
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
@Bijington我剛剛刪除該行,因爲我知道如何翻譯其餘的哈哈,我只想顯示較少的代碼。我無法解決的行是:NSArray * urlParts = [urlStr componentsSeparatedByString:[NSString stringWithFormat:@「%@ /」,kREDIRECTURI]]; and –
@Bijington vc.access_token = [urlStr substringFromIndex:NSMaxRange(token)]; –