我想知道以下代码是否是使用新 @autoreleasepool 的好方法,我应该这样使用它还是让主 autoreleasepool 处理对象?

  • (void) 调用AutoReleasedObject,可能是我的viewDidAppear 或类似的函数。

  • 谢谢!
    - (UIBarButtonItem*)backButton {
        UIBarButtonItem* backButton = [[UIBarButtonItem alloc] initWithTitle:@"CustomBackTitle"
                                                                       style:UIBarButtonItemStyleBordered
                                                                      target:nil
                                                                      action:nil];
        return [backButton autorelease];
    }
    
    - (void) callingAutoReleasedObject {
    
        @autoreleasepool {
            [[self navigationItem] setBackBarButtonItem:[self backButton]];
        }
    }
    

    最佳答案

    来自苹果的 reference :

    我个人创建了几个 @autoreleasepool 块,以避免在使用 Core Data 进行后台同步期间出现大量内存泄漏,因为框架(我喜欢)创建了大量自动释放的对象,必须将其排空以保留可用内存;)

    关于objective-c - 使用@autoreleasepools 的正确方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9077172/

    10-10 10:21