2016-10-01 1 views
1

Donc le problème que j'ai est que j'ai un objet avec un argument dans le init() qui nécessite un [UInt8]. Je veux pouvoir saisir une plage d'un autre tableau et l'utiliser dans init. Voir l'exempleIndice de [UInt8] - Swift

class Test { 

    init(fromArray: [UInt8]) { 
    // performs work 
    } 
} 

let myStockArray: [UInt8] = [1,2,3,4,5,6,7,8] // reference array 

let test = Test(fromArray: myStockArray[1...4]) // doesn't work 

Comment puis-je faire fonctionner ceci? L'erreur que je reçois est: Impossible d'inscrire une valeur de type '[UInt8]' avec un index de type 'CountableClosedRange'

Répondre

3

L'indexation d'un tableau avec une plage ne renvoie pas un tableau et c'est le problème principal. Vous essayez de définir les données de type ArraySlice<UInt8> au constructeur qui ont le type [UInt8].

Essayez cette approche:

class Test { 

    init(fromArray: [UInt8]) { 
     // performs work 
    } 
} 

let myStockArray: [UInt8] = [1,2,3,4,5,6,7,8] // reference array 

let test = Test(fromArray: Array(myStockArray[1...4])) 
+0

Ah ce fut tout. Merci! – JoeBayLD