我想知道延期的事。
案例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"
}
}有什么不同吗?两者都很完美,我只知道哪一个更好,为什么?
发布于 2016-11-19 13:54:38
扩展允许您向类添加功能(以扩展它),而无需子类。
因此,假设您想要添加一个quickAlertFunction,这样您就可以轻松地显示一个带有标题、消息和ok按钮的基本警报:
func displayQuickAlert(title: String: message: String) {
// create a alert VC with title and mesage
// add the ok button/action
// present the alertVC
}如果您通过子类进行此操作,则需要更新所有的ViewControllers以从您的子类扩展,但如果您将其作为UIViewController的扩展,则不需要更新任何内容。
当您想要向类添加一般功能时,通常最好使用扩展,如果您想要添加特定的更改,可能就像扩展一个textfield并添加一些自动完成之类的。您不希望这些更改在所有Textfield上都是全局的,而只是子类的实例。
还有最后一件事要注意..。不能在扩展中添加属性,但可以在子类中添加属性。
https://stackoverflow.com/questions/40693591
复制相似问题