我想知道NSObject
和struct
之间的区别。以下示例将解释这两种情况
在struct
struct UserDetails{
var userName:String
var userID:String
var userAge:String
func userDescription()->String{
return "name " + userName + "age " + userAge
}
}
在NSObject
班级
class UserDetails: NSObject {
var userName:String?
var userID:String?
var userAge:String?
func userDescription()->String{
return "name " + userName! + "age " + userAge!
}
}
你们有没有人可以告诉我在哪里必须使用NSObject
课程,我必须使用struct
..?
答案 0 :(得分:5)
1)结构通过值传递,Class实例通过引用传递 2)类可以是子类,Structs不能。
Class是否是NSObject的子类(大多数)是无关紧要的。你也可以说:
class UserDetails {
var userName:String?
var userID:String?
var userAge:String?
func userDescription()->String{
return "name " + userName! + "age " + userAge!
}
}
答案 1 :(得分:3)
Swift中的类和结构比许多语言中的更接近。两者都可以具有属性,方法,初始化器,下标,可以符合协议,并且可以扩展。但是,只有类可以利用继承并使用deinitializers,并且因为类是通过引用使用的,所以您可以对特定实例具有多个引用。
结构在整个Swift中使用 - 数组,字典,一切都是可选的,还有更多是基于struct
类型构建的,因此性能应该非常高。只要您不需要继承或类提供的多个引用,就可以使用struct
。