Comment supprimer un objet dans Swift

Comment attribuer nil à un objet dans Swift. Je reçois une erreur si assigné directement.

entrez la description de l'image ici

25
demandé sur Muruganandham K 2015-06-03 09:46:13

8 réponses

De La Documentation Apple:

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!

.

28
répondu Icaro 2015-06-03 07:29:02

Veuillez vérifier ci-dessous -

var lastRecordedLocation: String?
lastRecordedLocation = nil
17
répondu Santu C 2015-06-03 06:55:00

À 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
10
répondu iAnurag 2016-06-13 05:29:40

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.

3
répondu ridvankucuk 2015-06-03 06:50:28

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
3
répondu user3182143 2015-06-03 09:31:37

Seulement facultatif peut être nil

var lastRecordedLocation:CLLocation? ou cette var lastRecordedLocation:CLLocation!

2
répondu Leo 2015-06-03 06:51:17

Si vous voulez néant la propriété , vous avez besoin de la Optionnel valeur de la lastRecordedLocation

2
répondu leng_1990 2015-06-03 06:55:31

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.

1
répondu Christian Ettelt 2016-11-27 09:17:06