无法弄清楚这个 Obj-C 到 Swift 的转换

Can't figure out this Obj-C to Swift conversion

我正在学习如何实施 instagram API 的教程,但我卡在了几个部分。边走边将 Obj-C 转换为 Swift,以为我明白我在做什么,但显然不是。

这部分目前给我一个问题,我不能把这些常量放在一起 NSString(format: .. , args: ...)

NSString *fullURL = [NSString stringWithFormat:@"%@%@&redirect_uri= %@&response_type=token",KAUTHURL,KCLIENTID,kREDIRECTURI];

而且我无法让 UIWebView.loadRequest 加载完整的 URL 变量

如有任何帮助,我们将不胜感激!

答案:

import UIKit

class OAuthViewController: UIViewController, UIWebViewDelegate {

    @IBOutlet weak var myWebView: UIWebView?

    var savedToken = ""
    var userDefaults = NSUserDefaults.standardUserDefaults()

    var KAUTHURL: String = "https://api.instagram.com/oauth/authorize/"
    var kAPIURl: String = "https://api.instagram.com/v1/users/"
    var KCLIENTID: String = "02627256292c4083a42e55db3ef21a82"
    var KCLIENTSERCRET: String = "15d0c073b82545d7b000fdf8440bf0c6"
    var KREDIRECTURI: String = "https://www.chahooo.tumblr.com"
    var KSCOPEADD: String = "&scope=relationships+comments"


    override func viewDidLoad() {
        super.viewDidLoad()

        // Loading the Instagram login page for user's to log in
        var fullURL = "\(KAUTHURL)?client_id=\(KCLIENTID)&redirect_uri=\(KREDIRECTURI)&response_type=token"

        var url = NSURL(string: fullURL)

        var request: NSURLRequest = NSURLRequest(URL: url!, cachePolicy: NSURLRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData, timeoutInterval: 40)
        myWebView!.loadRequest(request)

            }
var KAUTHURL = "blah blah blah"
var KCLIENTID = "blah blah blah"
var kREDIRECTURI = "Blah blah blah"

var fullURL = String(format:"%s%s&redirect_uri= %s&response_type=token", KAUTHURL, KCLIENTID, kREDIRECTURI)

试试这个:

let fullURL = NSString(format: "%@%@&redirect_uri= %@&response_type=token", KAUTHURL,KCLIENTID,kREDIRECTURI)

最好的方法是使用 swift 字符串:

var fullURL = "\(KAUTHURL)\(KCLIENTID)&redirect_uri=\(kREDIRECTURI)&response_type=token"

然后你可以从这个字符串中获取一个 NSURL 对象:

var url = NSURL(string: fullURL)

要加载 webView 创建一个 NSURLRequest:

var request: NSURLRequest = NSURLRequest(URL: url, cachePolicy: NSURLRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData, timeoutInterval: 40)
yourWebView.loadRequest(request)