Swift变量在其自己的初始值内使用

Lor*_*ion 3 initialization ios swift

我正在尝试初始化一个对象,我收到此错误: Variable used within its own initial value

这是我的代码:

在此输入图像描述

为什么我不能这样做呢?

Luc*_*tti 9

其他答案是正确的.我想在这里添加一些建议,因为我在你的代码中看到了许多非常难看的东西:[

1.类型名称应为UpperCamelCase

因此,请将您的课程命名Entityentity

2.扩展NSObject ...

为何Entity延伸NSObject?你有正当理由这样做吗?

3.可见性

我看到很多public代码.为什么?你在创建一个图书馆吗?因为可能没有必要做public所有的事情.

4.结构而不是类

如果Entity只是一堆数据的容器,它应该是a struct,而不是a class.你会获得更好的表现.

5."created"属性声明为String?真的吗?

我经常看到那里的代码String类型代替许多其他类型的使用(如Int,NSDate,Bool,...).为什么?每次你需要执行一些与真实类型严格相关的操作/检查时(例如添加数字,比较日期等等),这极难处理这个值.

6.一切都初始化为"",为什么?

什么created是空字符串是什么意思?如果你使用空String来表示没有值,你应该使用nil(当然,属性是可选类型).

希望这可以帮助 :)


and*_*n22 5

你不能给变量一个与类型相同的名称:编译器变得混乱,它认为你对entry类型的引用是指entry新变量,因此警告.

最好的解决方案是使用CamelCase名称作为变量的类型和llamaCase名称,如Apple在"The Swift Programming Language"中所推荐的那样.例如:

public var entry = Entry()
Run Code Online (Sandbox Code Playgroud)

public class Entry: NSObject {
Run Code Online (Sandbox Code Playgroud)

(另请注意,您无需明确说明entry变量的类型,因为它很容易从其值中推断出来.)