Swift-变量在if语句中作为更新的一部分,但随后将还原

迈克尔·柯蒂斯(Michael Curtis)

我正在构建一个浏览器,然后关闭它,并从各种API中获取一些输入URL的数据。我已经启动并运行了基本控件,但是我对某些代码感到困惑,这些代码旨在在用户不输入URL的情况下,将“ HTTP://”附加到URL的开头。

func loadAddressURL(URLpath: String) {


    //add 'http' if not entered.

    var first4 = Range(start: URLpath.startIndex,
        end: advance(URLpath.startIndex, 4))

   var URL = URLpath
    println(URL)

        if URLpath.substringWithRange(first4) != "http" {
        var URL = "http://" + URLpath
        println(URL)

    }

    println(URL)

    let requestURL = NSURL(string: URL)
    let request = NSURLRequest(URL: requestURL!)
    webview.loadRequest(request)
}

在第一次打印时,URL随用户输入而进入。If语句中的第二个print语句正在按预期显示带有添加的'HTTP://'的值,但是,如果if语句完成后,URL Var返回到用户输入的原始字符串,如果我错了可以找出原因。有任何想法吗?

桑迪普

问题在于可变范围。如果您看一下代码,则可以在函数内部的顶层定义一个变量URL。然后比较前缀并附加http,然后在if语句(现在作用域)内定义一个新变量。因此,if外部的URL变量与if内部的变量不同,因此,在if语句外部看不到您对URL所做的更改。

只需进行以下更改,就可以了,

func loadAddressURL(URLpath: String) {


    //add 'http' if not entered.

    var first4 = Range(start: URLpath.startIndex,
        end: advance(URLpath.startIndex, 4))

    var URL = URLpath
    println(URL)

    if URLpath.substringWithRange(first4) != "http" {
      URL = "http://" + URLpath
      println(URL)
    }

    println(URL)

    let requestURL = NSURL(string: URL)
    let request = NSURLRequest(URL: requestURL!)
    webview.loadRequest(request)
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

文件viewController.swift是模块“ coreData”的一部分,忽略了导入

在Swift中仅改组结构的一部分

iOS 8 Core Image通过Swift保存图像的一部分

屏幕截图-屏幕的一部分-Swift

如何在子查询中使用HAVING作为Select语句的一部分

检查数组是否包含Swift中字符串的一部分?

如何使用Swift选择图像的一部分,裁剪并保存?

将中间输出分配给temp变量作为dplyr管道的一部分

Swift:如何在AVPlayerLayer的顶部添加图像/文本,使其成为视频的一部分?

在Swift iOS中获取mailto链接的一部分

为什么我只能在TableView Swift中显示我的第一部分?

使用变量作为语句的一部分

将json的一部分(当前作为字符串)分配给JavaScript中的变量

如何在Swift 4中将GMSMapView添加到视图的一部分

Xcode:文件“ GameViewController.swift”是模块“ SceneKit”的一部分;忽略导入

如何在angularJs 1.5中将$ scope变量作为组件的templateUrl的一部分传递?

将VARCHAR转换为SMALLDATETIME作为UPDATE语句的一部分

将标题作为CURL的一部分

将变量从代码的一部分传递到另一部分

在Swift中提取二维数组的一部分

尝试在 Swift 3.0 中访问数组作为 JSON api 的一部分

如何在 mysql 中执行 IF 语句作为 SELECT 语句的一部分

一个框架包含另一个框架或其中的一部分 SpriteKit swift iOS

使用枚举作为 Swift 协议编程的一部分

合并多个列,将变量名作为数据的一部分

使用 json 的一部分进行 swift 解码

swift 将 UInt8 数组的一部分包装为强的正确方法是什么?

如何在 Swift 中僅讀取文件的第一部分?

iOS 15 Swift UI VStack 動畫不會將行作為動畫的一部分

TOP 榜单

热门标签

归档