Je me rends compte qu'il y a une tonne de questions sur les réponses à ce sujet, mais pour une raison quelconque, je ne peux pas me faire fonctionner. Tout ce que je veux faire, c'est le test si un tableau a au moins un membre. Pour une raison quelconque, Apple a rendu cela compliqué à Swift, contrairement à l'objectif-C où vous venez de tester si Voici mon code: p> Cependant, je reçois une erreur: P> ni des options de fixation pour chaîner ou forcer le débit résolvez l'erreur. J'ai également essayé: p> mais aucun de ceux qui ne fonctionneront p> merci pour toute suggestion. P> p> comptez> = 1 code>. Le code se bloque lorsque le tableau est vide.
valeur de type optionnel '[mychaTVC.Quotation]?' Doit être déballé pour se référer à «Indice» du type de base enveloppé »[mychaTVC.Quotation] '. code> p>
3 Réponses :
Vous pouvez déballer le tableau facultatif et utiliser cela comme celui-ci, utilisez également le nouveau int.random (in :) code> Syntaxe pour générer aléatoire
int code> S:
if let unwrappedArray = quotearray,
!unwrappedArray.isEmpty {
let item = unwrappedArray[Int.random(in: 0..<unwrappedArray.count)]
}
En utilisant si laisse et isempty ensemble ressemble à un bon moyen de tester une matrice optionnelle ayant un élément
Il y a toujours moyen de s'améliorer. Tout comme faire de la chèque Bool plus courte comme je viens de le faire avec non écraspararray.isempty == false code> instruction ou appeler le randomelement sur la matrice directement.
aléatoire code> existe déjà, alors ne réinventez pas la roue:
si laisse code> échouera en toute sécurité si
Pepboys code> est
nil code> ou vide. p> p>
Ce code a également fonctionné. Le marquant correctement car cette version est légèrement plus courte que celle de Frankenstein qui a également fonctionné.
Je recommanderais d'utiliser la déclaration de garde p>
garde, laissez Array = optiméraire,! Array.Impty ele {return} ... p>