2015-10-11 14 views
26

Tôi tiếp tục cố gắng tìm kiếm một cách thích hợp để có được một mảng con trong Swift nhưng tôi thiếu một cái gì đó ở đây. Mã này không hoạt động vì rowArray.append(row) ném lỗi báo cáo.Làm thế nào để có được một subArray từ Swift 2.0

Không thể chuyển đổi giá trị của loại 'ArraySlice <Int>' để xác định loại '[Int]

tôi không thể tìm ra cách để có được một [Int] ra khỏi mảng chính hoặc để chuyển đổi ArraySlice <Int> thành [Int]. Tôi đoán tôi đang thiếu một cái gì đó đơn giản nhưng dường như không thể tìm thấy câu trả lời từ các tài liệu.

var rowArray = [[Int]]() 

var rangeStart = 0 
let rangeLength = mapWidth 

for var index = 0; index < mapHeight; ++index{ 
    rangeStart = tileIDs.count - ((index + 1) * mapWidth) 

    let row : [Int] = tileIDs[rangeStart...rangeStart+rangeLength] 
    rowArray.append(row) 
} 
rowArray.append(row) 

Trả lời

61

Chuyển đổi ArraySlice<Int> để [Int] với Array():

let row : [Int] = Array(tileIDs[rangeStart...rangeStart+rangeLength]) 
+0

Cảm ơn bạn rất nhiều. Tôi đã cố gắng rất nhiều sự kết hợp khác nhau và tìm ra nó là một cái gì đó đơn giản. –

+0

Bạn được chào đón. – Moritz

+8

Cần lưu ý rằng điều này vẫn hoạt động trong Swift 3 –

Các vấn đề liên quan