【发布时间】:2010-07-25 06:08:39
【问题描述】:
我正在开始 Objective-C 开发,我正试图了解一些事情是如何工作的。
我正在创建一个 Twitter 客户端并有一个“Tweet”类。这只是一个 DTO - 一个有一些变量的类。
这应该只是一个类还是应该从 NSObject 继承?
为什么?或者为什么不呢?
【问题讨论】:
标签: objective-c
我正在开始 Objective-C 开发,我正试图了解一些事情是如何工作的。
我正在创建一个 Twitter 客户端并有一个“Tweet”类。这只是一个 DTO - 一个有一些变量的类。
这应该只是一个类还是应该从 NSObject 继承?
为什么?或者为什么不呢?
【问题讨论】:
标签: objective-c
每个普通类都应该是 NSObject 的子类。没有它,-retain 和-release 等基本内存管理以及-isKindOfClass:、-respondsToSelector: 等运行时内省将无法工作。
【讨论】:
你应该这样做,除非你有非常明确的、强有力的理由不这样做。在 Objective-C 中,任何对象都可以分配给id。但是id 根本不保证任何方法,即使是分配、初始化、释放和引用计数等标准操作。
这些是由一个根类实现的,它几乎总是一个NSObject。
此外,大多数 Cocoa API 都希望处理 NSObject,因为它至少需要 retain 和 release 对象。
所以你应该从NSObject继承。
【讨论】: