2015-10-11 20 views
26

से सबएरे कैसे प्राप्त करें मैं स्विफ्ट में उप सरणी पाने के लिए उचित तरीके खोजने की कोशिश करता हूं लेकिन मुझे यहां कुछ याद आ रहा है। यह कोड काम नहीं करता है क्योंकि rowArray.append(row) बताता है कि एक त्रुटि फेंकता है।स्विफ्ट 2.0

प्रकार का मान कनवर्ट नहीं कर सकता 'ArraySlice < इंट >' निर्दिष्ट प्रकार '[इंट]' के लिए

मैं समझ नहीं कैसे मुख्य सरणी से बाहर निकलने के लिए एक [इंट] या ArraySlice <Int> [int] में कनवर्ट करने के लिए। मुझे लगता है कि मुझे कुछ आसान याद आ रहा है लेकिन दस्तावेज़ों से जवाब नहीं मिल रहा है।

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) 

उत्तर

61

Array() से रूपांतरित होने वाले ArraySlice<Int>[Int] रहे हैं:

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

बहुत बहुत शुक्रिया। मैं इतने सारे अलग संयोजनों की कोशिश कर रहा था और लगा कि यह कुछ आसान था। –

+0

आपका स्वागत है। – Moritz

+8

यह ध्यान देने योग्य है कि यह अभी भी स्विफ्ट 3 में काम करता है –

संबंधित मुद्दे