Comment supprimer un objet dans Swift
Comment attribuer nil à un objet dans Swift. Je reçois une erreur si assigné directement.
8 réponses
Nil ne peut pas être utilisé avec des constantes et des variables non optionnelles . Si un constante ou variable dans votre code doit travailler avec l'absence d'un valeur dans certaines conditions, déclarez-La toujours comme valeur facultative du type approprié
Aussi très important à remarquer:
Le nil de Swift n'est pas le même que nil dans Objective-C . Dans L'objectif C, néant est un pointeur vers un objet inexistant. Dans Swift, nil n'est pas un pointeur-c'est l'absence d'une valeur d'un certain type. Options de tout type peut être défini sur nil, pas seulement les types d'objets
J'espère que cela vous aidera!
.
Veuillez vérifier ci-dessous -
var lastRecordedLocation: String?
lastRecordedLocation = nil
À néant l'objet, il doit être déclarée nulle par ? marque. Cela signifie que la valeur peut (éventuellement) être un néant. Alors déclarez-le comme:
var lastRecordedLocation: String?
Et ensuite vous pouvez le définir sur nil
lastRecordedLocation = nil
Cela signifie que votre objet lastRecordedLocation
n'est pas de type Optional
.
Si vous rendez Lastrecordedlocation facultative, par exemple:
var lastRecordedLocation:String?
Vous pouvez définir nil à cet objet plus tard.
Remarque: Si vous définissez une variable facultative sans fournir de valeur par défaut, la variable est automatiquement définie sur nil pour vous:
var lastRecordedLocation: String?
// lastRecordedLocation is automatically set to nil
or
lastRecordedLocation = nil
Seulement facultatif peut être nil
var lastRecordedLocation:CLLocation?
ou cette
var lastRecordedLocation:CLLocation!
Si vous voulez néant la propriété , vous avez besoin de la Optionnel valeur de la lastRecordedLocation
J'ai utilisé ce qui suit pour vider une variable de type de données précédemment remplie
var jsonData = Data()
La variable avait déjà été utilisée pour la sérialisation JSON mais prenait trop de mémoire, donc je l'ai simplement réinitialisée et la taille redevient 0 octet.