繁体   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