0

我收到以下代码的上述违规行为:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *simpleTableIdentifier = @"Cell";

    UITableViewCell *cell = [tableView   dequeueReusableCellWithIdentifier:simpleTableIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:simpleTableIdentifier];
    }



        cell.textLabel.text = [mapContacts objectAtIndex:indexPath.row];
    NSLog(@"%@",cell.textLabel.text);
    cell.detailTextLabel.text = [number objectAtIndex:indexPath.row];



        return cell;


}

违规行为显示在return cell;What can be done to remediate this? 请帮忙。我正在使用带有 ARC 的 XCode 4.5。

4

1 回答 1

6

您显然没有使用 ARC(至少在该编译单元/文件中)。

这:

        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:simpleTableIdentifier];

导致手动引用计数(=非ARC)中的(潜在)泄漏。您需要在此行的末尾放置一个自动释放:

cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:simpleTableIdentifier] autorelease];

或者只是确保 ARC 已正确启用(在构建阶段查找 -fno-objc-arc 标志)

于 2013-05-29T15:46:03.583 回答