-4

我的困惑来自下面的代码。主要区别是什么?您何时使用第一个示例而不是另一个示例?两者都创建对象,但我不明白它们之间的区别。

-(id)initWithCoder:(NSCoder *)aDecoder  {
    if ((self = [super init])) {
        self.text = [aDecoder decodeObjectForKey:@"Text"];
        self.checked = [aDecoder decodeBoolForKey:@"Checked"];
    }
    return self;
}

相比说:

NSString *string = [[NSString alloc] init];
4

1 回答 1

1

在第一个实例中,您正在指示类/子类如何在类/子类的实现(.m 文件)中启动时表现,而在第二个示例中,您正在将现有对象初始化为变量。

希望这可以帮助。如果需要,我很乐意进一步澄清。

参考:http: //developer.apple.com/library/ios/#Documentation/General/Conceptual/CocoaEncyclopedia/Initialization/Initialization.html

于 2013-05-22T15:51:17.127 回答