簡體   English   中英

Swift變量在其自己的初始值內使用

[英]Swift Variable used within its own initial value

我正在嘗試初始化一個對象,我得到了這個錯誤: Variable used within its own initial value

這是我的代碼:

在此輸入圖像描述

為什么我不能這樣做呢?

其他答案是正確的。 我想在這里添加一些建議,因為我在你的代碼中看到了許多非常難看的東西:[

1.類型名稱應為UpperCamelCase

因此,請將您的類命名為Entity而不是entity

2.擴展NSObject ...

為什么Entity擴展了NSObject 你有正當理由這樣做嗎?

3.可見性

我在你的代碼中看到很多public 為什么? 你在創建一個圖書館嗎? 因為可能沒有必要public所有這些東西。

4.結構而不是類

如果Entity只是一堆數據的容器,那么它應該是一個struct ,而不是一個class 你會獲得更好的表現。

5.“created”屬性聲明為String? 真的嗎?

我經常看到使用String類型的代碼代替許多其他類型(例如IntNSDateBool ,...)。 為什么? 每次你需要執行一些與真實類型嚴格相關的操作/檢查時(例如添加數字,比較日期等等),這極難處理這個值。

6.一切都初始化為“”,為什么?

created時空字符串是什么意思? 如果您使用空String來表示缺少值,則應使用nil (當然,該屬性是可選類型)。

希望這可以幫助 :)

你不能給變量一個與類型相同的名稱:編譯器變得混亂,它認為你對entry的引用是指entry新變量,因此警告。

最好的解決方案是使用CamelCase名稱作為變量的類型和llamaCase名稱,如Apple在“The Swift Programming Language”中所推薦的那樣。 例如:

public var entry = Entry()

public class Entry: NSObject {

(另請注意,您無需顯式聲明entry變量的類型,因為它很容易從其值中推斷出來。)

您只是碰撞了條目變量引用的名稱和條目類。 只需重命名條目類:例如,將其設為“Entry”。

更改實例的名稱,因為您不能使用與該類相同的名稱。 此外,您應該將類​​的名稱更改為大寫,以便更容易區分類名和實例

var levelEntry = Entry()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM