1

我正在使用以下代码并且正在使用 ARC

NSString *text;
static NSString *CellIdentifier=@"Cell";
FeedsCell *cell= [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
    cell = [[FeedsCell alloc] initWithStyle:UITableViewCellStyleSubtitle  reuseIdentifier:CellIdentifier];
}

if (indexPath.row == [feedsData count]-1)
{
    [spinner startAnimating];
    [spinner setHidesWhenStopped:YES];

    OnDemand_fetch *getData = [[OnDemand_fetch alloc] init];

    if(nextUrl != NULL)
    {

        NSString *nextfbUrl = [getData getnextFbfeedUrl];
        NSString *nexturlEdited = [nextfbUrl stringByReplacingOccurrencesOfString:@"|" withString:@"%7C"];
        [demandfetch getFeedsInBackground:nexturlEdited];



    }
    else
    {
        [spinner stopAnimating];
        self.myTableView.tableFooterView=nil;
     }   

在分析时,显示警告:“在第 267 行分配并存储到 'getData' 中的对象的潜在泄漏。”

谁能建议避免这种情况的方法?这会造成什么麻烦吗?

谢谢

4

2 回答 2

5

没有错误!但我正在使用 ARC!为什么会出现这种奇怪的行为?

因为......你没有使用ARC。不知道为什么你认为你是。要转换为 ARC,请转到 Edit->Refactor->Convert to Objective-C ARC。

如何转换为 Objective-C ARC

如果您不想全力以赴,并且 ARC 一切,您可以将-fobjc-arc编译器标志添加到要使用 ARC 的文件中,项目是非 ARC。

于 2012-11-05T11:22:25.957 回答
0

您只使用块getData内的对象if(nextUrl != NULL),您可以尝试将其移动到块并nil在最后制作,如下所示:

if(nextUrl != NULL)
{
    OnDemand_fetch *getData = [[OnDemand_fetch alloc] init];
    NSString *nextfbUrl = [getData getnextFbfeedUrl];
    NSString *nexturlEdited = [nextfbUrl stringByReplacingOccurrencesOfString:@"|" withString:@"%7C"];
    [demandfetch getFeedsInBackground:nexturlEdited];
    getData = nil;
}
于 2012-11-05T11:10:05.150 回答