“自动释放”的问题

Posted

技术标签:

【中文标题】“自动释放”的问题【英文标题】:Problems with "autorelease" 【发布时间】:2012-07-04 16:47:22 【问题描述】:

我的“autorelease”有问题,查看我的代码:然后在“autorelease”中出现 2 条消息错误:

-'autorelease'不可用:在自动引用计数模式下不可用

与:

ARC 禁止发送“自动释放”的显式消息 //代码

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section


    // Return the number of rows in the section.
    return 25;


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:
  (NSIndexPath *)indexPath 
                           static NSString *CellIdentifier = @"Cell"; 
                           UITableViewCell *cell = [tableView
                                         dequeueReusableCellWithIdentifier:CellIdentifier];      
         if(cell==nil)
        cell=[[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] ***autorelease***];

     


    // Configure the cell...
    cell.textLabel.text=[NSString stringWithFormat:@"Rental Property:%d", indexPath.row];
    NSLog(@"Rental Property %d", indexPath.row);
    return cell;    return cell;

有人可以帮忙吗?

谢谢!!

【问题讨论】:

【参考方案1】:

只需删除对-autorelease 的调用即可。在 ARC 模式下不需要它。

【讨论】:

【参考方案2】:

如果这不是您的代码,而是您复制和粘贴的第三方库,您应该在 Targets-> Build Phases -> Compile Sources 和有问题文件的编译器标志下专门为实现文件关闭 ARC输入

-fno-objc-arc

【讨论】:

这就是您要寻找的答案吗?【参考方案3】:

使用 ARC 时不需要使用自动释放。 ARC 代表“自动引用计数”,它自动处理对象的保留和释放。

【讨论】:

以上是关于“自动释放”的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何找到带有自动释放消息的对象?

iphone:多次自动释放对象

使用自动释放时,它实际上是啥时候释放的?

“自动释放”的问题

何时释放带有“自动释放”的对象?

目标 C:线程之间的自动释放对象?