Objective c 我应该什么时候使用

Objective c 我应该什么时候使用,objective-c,memory-management,retain,Objective C,Memory Management,Retain,可能重复: 我很难理解什么时候我必须保留一个对象?有一般规则吗 例如: - (IBAction)buttonPressed:(UIButton *)button{ // some code NSString *buttonText = button.titleLabel.text; //retain needed or not ? [buttonText retain]; double result = [someObject someMethod:

可能重复:

我很难理解什么时候我必须保留一个对象?有一般规则吗

例如:

- (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
}

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


另外,请看一看,有很多关于这个话题的文献。

我建议彻底阅读苹果公司创建的。此外,这个问题似乎是一个完全重复的问题。
- (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
}