【发布时间】:2011-10-27 15:19:37
【问题描述】:
Xcode 4.0.2
iPhone4 iOS 4.3.5
实现了 CoreLocation 和 MobileCoreServices 框架。
导入MobileCoreServices/UTCoreTypes.h
- (void) displayVideoPicker
{
UIImagePickerController *ipc = [[UIImagePickerController alloc] init];
ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
ipc.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil];
ipc.videoMaximumDuration = 45.0f;
ipc.videoQuality = UIImagePickerControllerQualityTypeMedium;
ipc.delegate = self;
[self presentModalViewController:ipc animated:YES];
[ipc release];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
[[picker parentViewController] dismissModalViewControllerAnimated: YES];
}
Instruments 报告 NSCFNumber 上的 16 字节小泄漏,可能是帧 FigRemote_CreatePropertyListFromBinaryPListData:
如果我删除这条线,泄漏就会消失:
ipc.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil];
我已经尝试过了,但它并没有消除泄漏。
NSArray *myMediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil];
ipc.mediaTypes = myMediaTypes;
[myMediaTypes release];
在选择视频并返回初始视图后发生泄漏。有什么想法吗?
【问题讨论】:
-
为什么要将常量转换为字符串?不看文档..这似乎是不必要的
-
哦,我明白了..在想这个常量可能是一个原始的,但它是一个 CFStringRef ......嗯......好吧,它的 16 个字节,老实说它并不重要,它从哪里发生当它在内部从二进制 plist 创建 plist 时,它看起来像一个 Apple 错误
-
@marshn 这两个答案中的任何一个是否可以帮助您解决问题?请选择其中一个作为您接受的答案。
标签: iphone memory memory-leaks uiimagepickercontroller xcode-instruments