1

我正在使用以下代码在模拟器上选择视频:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)  // for ipad only
{
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;
    imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    imagePicker.allowsEditing = NO;
    imagePicker.videoQuality = UIImagePickerControllerQualityTypeHigh;
    imagePicker.mediaTypes = [NSArray arrayWithObjects:(NSString *)kUTTypeMovie, nil];;
    popover = [[UIPopoverController alloc] initWithContentViewController:imagePicker];
    [popover presentPopoverFromBarButtonItem:[self.navigationItem.rightBarButtonItems objectAtIndex:0] permittedArrowDirections: UIPopoverArrowDirectionAny animated:YES];
}

在选择视频并单击“使用”按钮之前,一切都很好。此时,我得到“压缩视频”指示器,模拟器将锁定,必须重新启动。委托永远不会被调用,调试器只会显示“正在运行”,永远不会返回。

我的问题是:
(a) 代码有什么明显的问题,
(b) 注意到几篇关于 UIImagePickerController 和模拟器的帖子(但没有一个像我的那样)是否有人知道模拟器中是否存在可能的错误造成这种情况。这是 6.1 模拟器。

4

2 回答 2

1

您的代码看起来不错(我想启用了 ARC)。我的项目中有同样的问题。在模拟器上运行会导致挂起。虽然它在真实设备上运行良好。可能您应该在真实设备上测试您的代码。

于 2013-07-01T12:08:33.167 回答
0

你可以修复它:

转到模拟器硬件菜单并选择电视输出:640x480

之后尝试从 xcode 运行您的应用程序

然后再次进入模拟器硬件菜单并选择 TV out: Disabled。

于 2014-08-24T18:32:34.873 回答