gpt4 book ai didi

swift - 外延与内在的区别

转载 作者:行者123 更新时间:2023-11-28 11:00:43 25 4
gpt4 key购买 nike

我想了解扩展。

案例一。

import Foundation
import Parse

class Room: PFObject, PFSubclassing {
@NSManaged var name: String?

static func parseClassName() -> String {
return "Room"
}
}

案例 2.

import Foundation
import Parse

class Room: PFObject {
@NSManaged var name: String?


}

extension Room: PFSubclassing {

class func parseClassName() -> String {
return "Room"
}


}

有什么不同?两者都运行良好,我只知道哪个更好,为什么?

最佳答案

扩展允许您向类添加功能(以扩展它)而无需子类化。

假设您想添加一个 quickAlertFunction,这样您就可以轻松地显示带有标题、消息和确定按钮的基本警报:

func displayQuickAlert(title: String: message: String) {
// create a alert VC with title and mesage
// add the ok button/action
// present the alertVC
}

如果您通过子类化完成此操作,则需要更新所有 ViewController 以从您的子类扩展,但如果您将此作为 UIViewController 的扩展来完成,则无需更新任何内容。

如果您想向类添加通用功能,通常最好使用扩展,如果您想添加特定的更改,可能像扩展文本字段并添加一些自动完成或其他东西......您不希望这些更改在所有文本字段上都是全局的,只是您的子类的实例。

另外,最后一件事要注意..您不能在扩展中添加属性,但可以在子类中添加属性

关于swift - 外延与内在的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40693591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com