我正在创建一个 iPhone 应用程序,它使用 UIImagePickerController 让用户从照片库中选择图像。
选择器允许我从照片库中成功获取图像:
- iPhone 模拟器
- 运行 5.0.1 的真实 iPhone
- 真正的 iPad 运行 5.0.1
- 真正的 iPad 运行 5.1
- iPad模拟器 v4.3
但是,如果我在以下位置测试此应用程序,则选择器无法获取图像:
- iPad模拟器 v5.0
- iPad模拟器 v5.1
在这2个测试环境中,图像选择器成功出现。当我点击我需要的图像时,它只是没有通过方法“ - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info ”从“ [info objectForKey:UIImagePickerControllerOriginalImage] ”给我任何东西
“信息”字典是这样的:
{
UIImagePickerControllerMediaType = "public.image";
UIImagePickerControllerReferenceURL = "assets-library://asset/asset.PNG?id=7632C58F-AF74-4EEB-AF17-891E35949CBA&ext=PNG";
}
在前 5 个测试环境中,“信息”是这样的:
{
UIImagePickerControllerMediaType = "public.image";
UIImagePickerControllerOriginalImage = "<UIImage: 0x6bb7810>";
UIImagePickerControllerReferenceURL = "assets-library://asset/asset.PNG?id=7632C58F-AF74-4EEB-AF17-891E35949CBA&ext=PNG";
}
您可以看到 UIImagePickerControllerOriginalImage 丢失了。我不确定这是否只是我?
注意:我使用 Xcode 4.3.2 和 iOS 5 SDK
注意 2:我没有使用 AssetsLibrary 框架来获取图像。
注 3(2012 年 8 月 2 日添加):我已升级到安装了 Mountain Lion 的 Xcode 4.4。同样的问题仍然存在。但是现在如果我在 iPad 模拟器 v5.0 中运行它会出现一条新的错误消息(如果我在 iPad 模拟器 v5.1 上运行它不会出现错误消息)。错误消息显示:找不到命名服务“com.apple.PersistentURLTranslator.Gatekeeper”。assetsd 已关闭或配置错误。事情不会像你期望的那样工作。
注 4(添加于 2012 年 11 月 25 日):使用 Xcode 4.5.2,此问题在 iPad 模拟器 5.0、5.1 和 6.0 中仍然存在
注 5(2012 年 3 月 6 日添加):使用 Xcode 4.6,此问题在 iPad 模拟器所有版本中仍然存在。