ABRecordRef
的 Obj-C方法,虽然我在调用代码中通过CFRelease
平衡了CF对象的创建,静态分析仪显然不确定CF对象的内存管理是否正确完成,因此“潜在泄漏”
我将方法转换为 C函数,警告消失了。
原始问题:
在ARC下,我有一个UINavigationController
的子类,以模态方式呈现
在viewDidLoad
方法中,我设置了ABNewPersonViewController
,并使用以下代码将其推送到导航堆栈来显示它:
ABNewPersonViewController *personViewController = [[ABNewPersonViewController alloc] initWithNibName:nil bundle:nil];
personViewController.newPersonViewDelegate = self;
personViewController.displayedPerson = self.contactToBeAdded;f
[self pushViewController:personViewController animated:NO];
一切正常,但静态分析器在代码的第一行提供警告“内存(Core Foundation / Objective-C)对象潜在泄漏”。
我不明白为什么会有这个警告,以及如何摆脱它
有什么建议吗?
答案 0 :(得分:1)
您尝试从UIViewController
提供新的viewDidLoad
,问题是此控制器可能未添加到UIWindow
层次结构中。
尝试使用viewDidAppear
或viewWillAppear
方法显示此控制器,它应该修复警告。