NSObject和Struct之间的区别

Man*_*gan 6 struct swift ios8

我想知道的区别NSObjectstruct..Following例如将解释这两种情况下

struct

struct UserDetails{
    var userName:String
    var userID:String
    var userAge:String
    func userDescription()->String{
        return "name " + userName + "age " + userAge
    }
}
Run Code Online (Sandbox Code Playgroud)

NSObject课堂上

class UserDetails: NSObject {
    var userName:String?
    var userID:String?
    var userAge:String?
    func userDescription()->String{
        return "name " + userName! + "age " + userAge!
    }
}
Run Code Online (Sandbox Code Playgroud)

你能告诉我在哪里必须NSObject上课,我必须在哪里使用struct..?

Gri*_*mxn 5

1)结构通过值传递,类实例通过引用传递2)类可以是子类,结构不能.

Class是否是NSObject的子类(大多数)是无关紧要的.你也可以说:

class UserDetails {
    var userName:String?
    var userID:String?
    var userAge:String?
    func userDescription()->String{
        return "name " + userName! + "age " + userAge!
    }
}
Run Code Online (Sandbox Code Playgroud)


Nat*_*ook 5

Swift 中的类和结构比许多语言中的更接近。两者都可以有属性、方法、初始值设定项、下标,可以符合协议,并且可以扩展。但是,只有类可以利用继承并使用析构器,并且由于类是通过引用使用的,因此您可以对特定实例有多个引用。

结构在整个 Swift 中都被使用——数组、字典、所有可选的东西等等都是建立在struct类型上的,所以性能应该非常高。您可以struct在不需要类提供的继承或多个引用时使用。

  • `Optional` 实际上是一个 `enum`,但它们类似于 `struct`s (2认同)