Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 我需要从NSObject创建子类吗?_Objective C - Fatal编程技术网

Objective c 我需要从NSObject创建子类吗?

Objective c 我需要从NSObject创建子类吗?,objective-c,Objective C,我正在开始Objective-C的开发,我正试图了解一些东西是如何工作的 我正在创建一个Twitter客户端,并有一个类“Tweet”。这只是一个DTO—一个有一些变量的类 这应该是一个类还是从NSObject继承 为什么??或者为什么不呢?每个普通类都应该从NSObject中派生子类。基本内存管理,如-retain和-release,运行时内省,如-iskindof类:,-respondsToSelector:没有它就无法工作。每个正常的类都应该从NSObject中生成子类。基本内存管理(如-

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

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

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


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

每个普通类都应该从NSObject中派生子类。基本内存管理,如
-retain
-release
,运行时内省,如
-iskindof类:
-respondsToSelector:
没有它就无法工作。

每个正常的类都应该从NSObject中生成子类。基本内存管理(如
-retain
-release
)和运行时内省(如
-respondsToSelector:
)属于类:,
-respondsToSelector:
)没有它就无法工作。

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

它们由根类实现,根类几乎总是一个
NSObject

此外,大多数CocoaAPI都希望处理
NSObject
,因为它至少需要
保留
释放
对象


因此,您应该继承自
NSObject

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

它们由根类实现,根类几乎总是一个
NSObject

此外,大多数CocoaAPI都希望处理
NSObject
,因为它至少需要
保留
释放
对象


因此,您应该继承自
NSObject

同样的问题同样的问题绝对地,每个类都应该将NSObject或NSProxy作为其根对象,除非您真的想做大量额外的工作并承受巨大的痛苦。绝对地,每个类都应该将NSObject或NSProxy作为其根对象,除非您真的想做大量额外的工作并承受巨大的痛苦。