【问题标题】:Do I need to Subclass from NSObject?我需要从 NSObject 子类化吗?
【发布时间】:2010-07-25 06:08:39
【问题描述】:

我正在开始 Objective-C 开发,我正试图了解一些事情是如何工作的。

我正在创建一个 Twitter 客户端并有一个“Tweet”类。这只是一个 DTO - 一个有一些变量的类。

这应该只是一个类还是应该从 NSObject 继承?

为什么?或者为什么不呢?

【问题讨论】:

标签: objective-c


【解决方案1】:

每个普通类都应该是 NSObject 的子类。没有它,-retain-release 等基本内存管理以及-isKindOfClass:-respondsToSelector: 等运行时内省将无法工作。

【讨论】:

  • 当然,每个类都应该有 NSObject 或 NSProxy 作为它的根对象,除非你真的想做大量的额外工作并承受很大的痛苦。
【解决方案2】:

你应该这样做,除非你有非常明确的、强有力的理由不这样做。在 Objective-C 中,任何对象都可以分配给id。但是id 根本不保证任何方法,即使是分配、初始化、释放和引用计数等标准操作。

这些是由一个根类实现的,它几乎总是一个NSObject

此外,大多数 Cocoa API 都希望处理 NSObject,因为它至少需要 retainrelease 对象。

所以你应该从NSObject继承。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    • 1970-01-01
    • 2014-01-31
    • 2014-04-23
    相关资源
    最近更新 更多