【问题标题】:Swift [String] is not convertible to 'String'Swift [String] 不能转换为 'String'
【发布时间】:2014-12-18 19:56:56
【问题描述】:

试图让它工作,但我得到了错误

"[String] 不能转换为 'String'"

 var city = "Atlanta"
 var issueLocation = ["Atlanta","Montreal","Toronto","XXIIVV"]
 let locationRand = Int(arc4random() % 3)
 var passportIdent = "Issue Location: \(issueLocation[locationRand])"
 if (issueLocation == city){
  }

【问题讨论】:

    标签: arrays string swift


    【解决方案1】:

    您正在将字符串数组与单个字符串进行比较。这没有任何意义,所以 swift 编译器在抱怨。

    issueLocation 是一个字符串的数组,它快速表示为[String]
    city,另一方面是单个String。注意缺少的方括号。

    将字符串数组与单个字符串进行比较是没有意义的。一件事怎么能等于多件事呢?

    这就是错误。目前尚不清楚您要完成什么(您应该告诉我们),所以我无能为力。

    【讨论】:

    • 我正在尝试从数组中选择一个特定的城市,特别是亚特兰大。城市设置为亚特兰大,所以我想说如果 issueLocation 是亚特兰大,就这样吧。
    【解决方案2】:
    var city = "Atlanta"
    var issueLocation = ["Atlanta","Montreal","Toronto","XXIIVV"]
    let locationRand = Int(arc4random() % 3)
    var passportIdent = "Issue Location: \(issueLocation[locationRand])"
    if (issueLocation == city){
    }
    

    应该是

    var city = "Atlanta"
    var issueLocation = ["Atlanta","Montreal","Toronto","XXIIVV"]
    let locationRand = Int(arc4random() % 3)
    var passportIdent = "Issue Location: \(issueLocation[locationRand])"
    var randCity = issueLocation[locationRand]
    if (randCity== city){
    }
    

    注意这条线

    var randCity = issueLocation[locationRand]
    

    实际上在您的 issueLocation 数组中获取随机元素。然后,您可以使用该值与您的 city 变量进行比较。

    【讨论】:

      【解决方案3】:

      看看你的 if 语句:

      if (issueLocation == city){
      }
      

      “city”是一个字符串,而“issueLocation”是一个字符串数组。您正在尝试将字符串与数组进行比较,但这是行不通的。

      【讨论】:

        猜你喜欢
        • 2014-10-09
        • 2015-08-13
        • 1970-01-01
        • 2014-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多