2016-07-16 12 views
0

Ich habe Array von Daten, wobei jedes Element ein anderes Array ist.Segmentierungsfehler im Swift-Array?

ich dies tun:

for array in data 
     { 
      let metaD = array[0] //should be a string 

    // here each "array" object is an array of strings. 

ich nicht loswerden dieses Signal Segmentierung Fehler werden könnte.

+1

Können Sie mehr von dem umgebenden Code teilen? Welche Zeile verursacht den Fehler? Was ist der genaue Text des Fehlers? – ColGraff

Antwort

0

Sorry für den Mangel an Details, ich habe auch nicht mehr Details hatte, wie auch immer,

let thisArray:NSArray = array as! NSArray 
      let metaD = thisArray[0] 

Löst das Problem, so dass er "kennt" seine eine NSArray.

+0

Wenn 'array' ein Swift' Array' ist, dann können Sie einfach 'thisArray = array als NSArray' verwenden. Sie sollten auch testen, um sicherzustellen, dass es nicht leer ist, bevor Sie den Index verwenden. – ColGraff

+0

Sie sollten 'NSArray'in Swift überhaupt nicht verwenden, da es keine Typinformationen enthält. Wirf 'Daten' in den eigentlichen Swift-Typ (wahrscheinlich' [[String]] '), dann erledigt der Compiler den Rest für dich. – vadian

+0

@vadian Ich stimme zu, dass 'NSArray' nicht optimal ist, aber es gibt Gelegenheiten, wo es nützlich ist. Wir haben die Kabel von Objective-C noch nicht vollständig durchgeschnitten, und wir werden es wahrscheinlich nicht bald tun! In diesem Fall stimme ich zu, wenn Sie nur die 'String' herausziehen und dann zu einem Swift' Array' wechseln wollen. – ColGraff