NSArray initWithObjects:内存泄漏

pad*_*apa 1 iphone objective-c

这是我的代码:

    - (void)viewDidLoad{
[super viewDidLoad];

self.authorList = [[NSArray alloc] 
                   initWithObjects:@"Christie, Agatha", 
                   @"Archer, Jeffrey", nil];

self.title = @"Authors";
Run Code Online (Sandbox Code Playgroud)

}

我在分配和初始化数组作者列表的行中遇到内存泄漏.我试图将autorelease放在作者列表上,但它说"对象发送 - 自动释放发送了太多次".我还在学习内存管理.

格拉西亚斯.

tro*_*foe 5

setter方法authorList将保留数组,因此您需要在调用它后立即释放它:

NSArray *list = [[NSArray alloc] 
                initWithObjects:@"Christie, Agatha", 
                @"Archer, Jeffrey", nil];
self.authorList = list;
[list release];
Run Code Online (Sandbox Code Playgroud)

或者你可以自动发布它:

self.authorList = [[[NSArray alloc] 
                   initWithObjects:@"Christie, Agatha", 
                   @"Archer, Jeffrey", nil] autorelease];
Run Code Online (Sandbox Code Playgroud)