0

以下是取自 Apple iPhone SDK 项目的示例:

@interface EADSessionController : NSObject <EAAccessoryDelegate, NSStreamDelegate> {
    EAAccessory *_accessory;
    EASession *_session;
    NSString *_protocolString;

    NSMutableData *_writeData;
    NSMutableData *_readData;
}

...

// initialize the accessory with the protocolString
- (void)setupControllerForAccessory:(EAAccessory *)accessory withProtocolString:(NSString *)protocolString
{
    [_accessory release];
    _accessory = [accessory retain];
    [_protocolString release];
    _protocolString = [protocolString copy];
}

我的理解是,“复制”还将分配复制作为参数传递的协议字符串对象所需的内存,因此在复制之前不需要分配(分配)一些东西。

我对吗 ?

问候, Apple92

4

1 回答 1

0

正确的。副本以(至少)1 的保留计数开始,您有责任最终释放它。(请参阅对象所有权政策。)

于 2010-10-19T08:00:35.027 回答