答案 0 :(得分:9)
其他答案是正确的。我想在这里添加一些建议,因为我在你的代码中看到了许多非常丑陋的东西:[
请为您的班级Entity
而不是entity
为什么Entity
会延长NSObject
?你有正当理由这样做吗?
我在你的代码中看到了很多public
。为什么?你在创建一个图书馆吗?因为可能没有必要public
所有这些东西。
如果Entity
只是一堆数据的容器,那么它应该是struct
,而不是class
。你会获得更好的表现。
我经常看到使用String
类型代替其他许多类型的代码(例如Int
,NSDate
,Bool
,...)。为什么?每次你需要执行一些与实际类型严格相关的操作/检查时(例如添加数字,比较日期等等),这极难处理这个值。
created
是空字符串是什么意思?如果您使用空String
来表示缺少值,则应使用nil
代替(当然属性是可选类型)。
希望这会有所帮助:)
答案 1 :(得分:5)
您无法为变量提供与类型相同的名称:编译器会感到困惑,并认为您对entry
类型的引用是指entry
新的变量,因此警告。
最好的解决方案是使用CamelCase名称作为变量的类型和llamaCase名称,如Apple在" Swift编程语言"中所推荐的那样。例如:
public var entry = Entry()
和
public class Entry: NSObject {
(另请注意,您无需明确说明entry
变量的类型,因为它很容易从其值中推断出来。)
答案 2 :(得分:2)
您只是碰撞了条目变量引用的名称和条目类。只需重命名条目类:例如,将其设为“Entry”。
答案 3 :(得分:1)
更改实例的名称,因为您不能使用与该类相同的名称。此外,您应该将类的名称更改为大写,以便更容易区分类名和实例
var levelEntry = Entry()