web-dev-qa-db-ja.com

Swiftでオブジェクトをニルする方法

Swiftでオブジェクトにnilを割り当てる方法。直接割り当てた場合、エラーが発生します。

enter image description here

27
Muruganandham K

From Apple Documentation: から

nilは、オプションではない定数および変数と共に使用することはできません。コード内の定数または変数が特定の条件下で値が存在しない場合に動作する必要がある場合、常に適切なタイプのオプション値として宣言します

また、非常に重要です:

Swiftのnilは、Objective-Cのnilと同じではありません。 Objective-Cでは、nilは存在しないオブジェクトへのポインタです。 Swiftでは、nilはポインターではなく、特定の型の値が存在しないことです。オブジェクト型だけでなく、任意の型のオプションをnilに設定できます

それがあなたのお役に立てば幸いです!

36
Icaro

以下を確認してください-

var lastRecordedLocation: String?
lastRecordedLocation = nil
21
Santu C

オブジェクトをnilにするには、?markでnilを指定して宣言する必要があります。これは、値が(おそらく)nilになる可能性があることを意味します。次のように宣言します:

var lastRecordedLocation: String?

そして、あなたはそれをnilに設定することができます

lastRecordedLocation = nil
12
iAnurag

つまり、lastRecordedLocationオブジェクトはOptional型ではありません。次のようにlastRecordedLocationをオプションとして作成した場合:

var lastRecordedLocation:String?

後でそのオブジェクトにnilを設定できます。

4
ridvankucuk

注:デフォルト値を指定せずにオプションの変数を定義すると、変数は自動的にnilに設定されます。

var lastRecordedLocation: String?
// lastRecordedLocation is automatically set to nil
   or
lastRecordedLocation = nil
4
user3182143

オプションのみがnilになることができます

var lastRecordedLocation:CLLocation?またはこれvar lastRecordedLocation:CLLocation!

2
Leo

プロパティをnilにする場合は、lastRecordedLocationOptional値が必要です

2
leng_1990

以下を使用して、以前に入力したデータ型変数を空にしました

var jsonData = Data()

変数は以前にJSONのシリアル化に使用されていましたが、メモリを使いすぎていたため、再初期化してサイズが再び0バイトになりました。

1