首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展和固有的区别是什么?

扩展和固有的区别是什么?
EN

Stack Overflow用户
提问于 2016-11-19 13:43:30
回答 1查看 201关注 0票数 0

我想知道延期的事。

案例1。

代码语言:javascript
复制
import Foundation
import Parse

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

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

案例2。

代码语言:javascript
复制
import Foundation
import Parse

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


}

extension Room: PFSubclassing {

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


}

有什么不同吗?两者都很完美,我只知道哪一个更好,为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-19 13:54:38

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

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

代码语言:javascript
复制
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上都是全局的,而只是子类的实例。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40693591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档