我想知道扩展。
案例1。
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"
}
}
有什么不同?两者都很完美我只知道哪一个更好,为什么?
答案 0 :(得分:3)
扩展允许您向类添加功能(以扩展它),而无需子类化。
所以想象一下你想添加一个quickAlertFunction
,这样你就可以轻松地显示一个带有标题,消息和确定按钮的基本警报:
func displayQuickAlert(title: String: message: String) {
// create a alert VC with title and mesage
// add the ok button/action
// present the alertVC
}
如果通过子类化完成此操作,则需要更新所有ViewControllers以从子类扩展,但如果您将此作为UIViewController的扩展,则不需要更新任何内容。
如果要添加特定更改,可能需要添加特定更改,例如扩展文本字段并添加一些自动完成功能等等,通常可以更好地使用扩展程序。 ; t希望这些更改在所有Textfields上都是全局的,只是你的子类的实例。
另外,最后要注意的一点是..你不能在扩展中添加属性,但你可以在子类中