使用以下代码并使用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'中。”
有人可以建议避免这种方法吗?这会引起什么麻烦吗?
由于
答案 0 :(得分:4)
没有错误!但我正在使用ARC!为什么这种奇怪的行为?
因为......你没有使用ARC。不知道为什么你以为你是。要转换为ARC,请转到编辑 - >重构 - >转换为Objective-C ARC。
如果您不想全力以赴,并且ARC所有内容,您可以将-fobjc-arc
作为编译器标志添加到您要使用ARC的文件中,项目为非ARC。
答案 1 :(得分: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;
}