String.Index没有名为advancedBy的成员

时间:2016-03-01 22:05:09

标签: swift

这是我作为班级练习的快速代码,我正在重写它(因为我是新手)。

在...的位置 let end = starIndex.advancedBy(position),我收到一条错误消息String.Index没有名为advancedBy的成员我不确定这意味着什么,或者如何纠正它,非常感谢您的帮助理解我做错了什么。

//: Playground - noun: a place where people can play

import UIKit

var str : String = "Hello, playground"

str

let strFix = " Can not change"
str = "Good bye"
//strFix = "Testing"

var str2 = str + "F"

var townName = "NeverLand"

let population = 30000

let numOfStopLight : Int = 10

print("\(townName) has populations of \(population) 
and has \   (numOfStopLight) Stop Lights")

for c in townName.unicodeScalars
{
    print ("\(c)")
}

let starIndex = str.startIndex

let position = 3

let end = starIndex.advancedBy(position)

let charAt = str[end]

let range = starIndex...end

str[range]

let aChar: Character = "\u{1F60E}"

str.append(aChar)

let dollarSign = "\u{24}"       //$, Unicode scalar U+0024
let blackHeart = "\u{2665}"     //  , Unicode scalar U+2665
let sparklingHeart = "\u{1F496}" //  , Unicod scalar U=1F496
str.append(Character(sparklingHeart))

for c in str.characters
{
    print("\(c)")

}
    for c in str.unicodeScalars
{
    print("\(c.value)")
}

/////////////////////


struct Car
{
   var make : String = ""
   var price : Double = 0.0
   let color : String = "RED"

    func getMske()->String
    {
       return make
    }
    mutating func setMake (m: String)
    {
        make = m
    }
     func showCar()->String
    {
        return "Make:\(make) Price=\(price) Color= \(color)"

    }
 }
  //let us make some Car

  var myCar = Car(make: "Nissan", price: 45000.0)

  print(myCar.showCar())

  myCar.setMake("Nissan2016")

  print (myCar.showCar())

  //show pass value

    func doChange (var c: Car)
    {
     c.setMake("Toyota")

    print (c.showCar())


    }

doChange(myCar)
print (myCar.showCar())


//let us have a class

class Xcar
{
    var make :String = ""
    var price : Double = 0.0
    var color : String = ""

    init(m :String, p: Double, c: String)
    {
        self.make = m
        self.price = p
        self.color = c
    }
    func setMake(m: String)
    {
        self.make = m

    }
    func showXCar()->String
    {

        return "Make: \(make) Price=\(price) Color=\(color)"
    }
}
 func doChangex( c:Xcar)
{
   c.setMake("BMW")
    print("\(c.showXCar())")

}
var hisCar = Xcar(m: "Fiat", p: 15000.0, c: "Blue")
print ("\(hisCar.showXCar())")

doChangex(hisCar)
//notice the function did change
//because it was a class
print ("\(hisCar.showXCar())")
//What is optional

let a: Float?
let b: Float?
let c :Float?

a = 10
b = 20
c = 5

//this is implicit unrap
let ave = (a! + b! + c!)/3.0

if let x = a, y = b, z = c
{
    print ("\((x + y + z) / 3.0)")

}
else
{
    print ("missing value...")



}


// note Array, Double, Float, Int and Dictionary are all struct

var intArray = [Int] ()
intArray.append(50)
intArray.append(100)
intArray.append(600)
intArray.maxElement()
intArray.capacity
intArray.count
intArray.description
intArray.dropFirst()
intArray.first
intArray.description
intArray.removeFirst()
intArray.description

for c in intArray
{
   print("\(c)")

}


var dict = [Int :String ] ()

dict = [235 :"Jack", 100: "Joe", 60: "Lisa"]
dict.description

for(key, value) in dict
{
    print ("\(key)")

}

var name = dict[235]

2 个答案:

答案 0 :(得分:0)

尝试一行

let startIndex = str.startIndex.advancedBy(3)

答案 1 :(得分:0)

代码有很多问题,我们不知道预期的输出是什么,但这里有几个项目:

只是' str'它应该被删除。

您可能正在运行旧版本的Xcode或OS(或两者)。这是Swift2,您应该使用Xcode 7或更高版本。

此外,还有' var'那应该是“让”#39; (hisCar)并且有许多未使用的变量。

好消息是,一旦你解决了问题,代码就能正确运行(据我所知)