0

AppleiPhoneSDKプロジェクトから抜粋した例を次に示します。

@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];
}

私の理解では、「コピー」は引数として渡されたprotocolStringオブジェクトをコピーするために必要なメモリも割り当てるため、コピーする前に何かを割り当てる(割り当てる)必要はありません。

私は正しいですか?

よろしく、Apple92

4

1 に答える 1

0

正しい。コピーは (少なくとも) 1 の保持カウントで開始され、最終的にそれを解放する責任があります。(オブジェクト所有権ポリシーを参照してください。)

于 2010-10-19T08:00:35.027 に答える