我可以问一下我应该使用哪个版本吗?在我的旧应用中,我似乎使用了"B“,但当我在网上查看大量示例时,我看到了很多看起来像"A”的版本。
// A
- (id)initWithCoder:(NSCoder *)decoder {
self=[super initWithCoder:decoder];
if(self) {
...或
// B
- (id)initWithCoder:(NSCoder *)decoder {
self=[super init];
if(self) {
...发布于 2011-07-26 02:11:40
如果超类采用NSCoding (很可能是这样,但并不总是这样),请始终调用
[super initWithCoder:decoder]否则调用其指定的初始值设定项。
发布于 2011-07-26 02:14:34
取决于超类是否符合NSCoding协议。如果是这样,您必须调用[super initWithCoder:decoder]。如果没有,你必须调用超类的指定初始值设定项。
例如,如果您的类是NSObject的直接子类,则可以调用[super init],这是NSObject指定的初始化器,因为NSObject不符合NSCoding协议。
https://stackoverflow.com/questions/6820415
复制相似问题