我在调用手机自带相机的时候出现了内存泄露,代码如下
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.allowsEditing = NO;
if (sender.tag == 1)
{
[imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
}
else
{
[imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
}
[imagePicker setDelegate:self];
NSLog(@"picker retaincount1 %i",[imagePicker retainCount]);
[self presentModalViewController:imagePicker animated:YES];
NSLog(@"picker retaincount2 %i",[imagePicker retainCount]);
控制台输出的是
picker retaincount1 1
picker retaincount2 4
怎么变成4了呢?求大神解决
这很正常,presentModalViewController这个方法会retain传给它的view controller参数,至于retain几次,跟它内部具体实现相关。开发者没必要关心这些,只要你保证自己主动调用的alloc和release相匹配就可以了,剩下的交给系统去处理。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。