2016-05-14 58 views
0

我创建了一个名为Location一个结构类型问题与创建结构类型的数组的元素

struct Location { 
    var XCoor: Int 
    var YCoor: Int 
} 

我想创建Location类型的数组我把它命名为places

var places : Array<Location> 

Quesiont:如何为数组创建元素?

我错误的猜测中的两个

places[0](Xcoor: 10, YCoor: 12)// error: cannot call value of non-function type 'Location' 


places[0].XCoor = 10 
places[0].YCoor = 12 //error: constant 'places' passed by reference before being initialized 
+1

如果您需要澄清语法来处理数组,我肯定会推荐[Apple的真正简洁明了的指南](https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/CollectionTypes。 html#// apple_ref/doc/uid/TP40014097-CH8-ID107)(以及Swift基础的其余部分)。 – Hamish

+0

@ originaluser2感谢您的文档 – SLN

回答

1

所有你可能需要使用常量(而不是变量)和小写名称中的第一个Location

struct Location { 
    let x: Int 
    let y: Int 
} 

接下来你这是怎么创造的Locations(S)

var places = [Location]() 

一个可变的数组,你这是怎么添加位置的地方

places.append(Location(x: 1, y: 3)) 
+0

感谢您的解释和帮助 – SLN

1
let firstLocation = Location(XCoor: 10, Ycoor: 10) 

places.append(firstLocation) 
+0

感谢您的演示代码 – SLN

1

的语法如下:

struct Location { 
    var XCoor: Int 
    var YCoor: Int 
} 

var places : [Location] // a bit of syntactic sugar, dropping the Array<...> 
places = [] // actually create the empty array 

var places2 = [Location]() // alternate, shorter, more swifty version of the two lines before 

places.append(Location(XCoor: 10, YCoor: 12)) // create an instance of the struct append it to the array 
+0

@ luk2320非常感谢您的详细解释和代码演示 – SLN

相关问题