什么时候应该使用保留

时间:2011-09-21 14:29:03

标签: objective-c memory-management retain

  

可能重复:
  Understanding when to call retain on an object?

当我必须保留一个物体时,我很难理解?有一般规则吗?

例如:

- (IBAction)buttonPressed:(UIButton *)button{

    // some code

    NSString *buttonText = button.titleLabel.text;
    //retain needed or not ?
    [buttonText retain];
    double result = [someObject someMethod:buttonText];

    // some more code
}

2 个答案:

答案 0 :(得分:0)

- (IBAction)buttonPressed:(UIButton *)button{

// some code

NSString *buttonText = [button.titleLabel.text retain];
//retain needed or not ?
// if you think your code can release the button object at this point, so you have to retain it.
// like : 
//[button release];

// its safer to retain your object so there wont be any problem. And dont forget to release

//[buttonText retain];


double result = [someObject someMethod:buttonText];

// release when you done with it.
[buttonText release];

// some more code
}

答案 1 :(得分:0)

在这种情况下,您不必retain buttonText,除非您要释放按钮并且需要保留字符串。保留会增加对象的保留计数,并且有一些规则和约定可以使用它。我建议你阅读this

另请参阅Apple's Documentation,有很多关于这个主题的文献。