将设备升级到 iOS 5,现在应用程序崩溃了。坚果...这是一个相机应用程序。录制视频。我有一个playMovie播放捕获的视频的程序。该函数需要使用指向视频文件NSURL的路径 ( ) 创建一个。NSString但NSURL创作与exc_bad_access. 2晚试图解决这个问题,没有运气。开始怀疑问题是 xcode 3.2.5 的旧版本。这是片段...
    - (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
    {
    /// after I verify that file type is movie ....
    videoFilePath = [[info objectForKey:UIImagePickerControllerMediaURL] path];
    NSURL    *url    =   [NSURL fileURLWithPath:videoFilePath];
    ... at this point the app crashes. 
已经尝试过:
- 将NSURL创作从 playMovie proc 移动到内部didFinishPickingMediaWithInfo(如上所示)。仍然崩溃。
- 添加isDirectory:NO]。仍然崩溃。
- 在日志中打印路径字符串...路径看起来很好(它不是空的或被覆盖的)
- 注释掉NSURL并保存 MOV 文件而不播放它。工作正常。但我需要 URL 才能播放电影。
设备日志:
异常类型:  EXC_BAD_ACCESS (SIGSEGV)
异常代码:KERN_INVALID_ADDRESS at 0x10000010
控制台消息:
数据格式化程序暂时不可用,将在“继续”后重试。(找不到 dlopen 函数,所以无法加载共享库。)
--- 添加更多细节 (8/30/12) ---
videoFilePath是NSString在我的viewController.h. 有@property (retain,nonatomic),而且是合成的。它不会在任何地方分配,因此它被用作常量。上面的代码片段显示了媒体 url 是如何分配的videoFilePath(作为一个常量,而不是分配的)。
在此之后,我为用户打开一个UIActionSheet“播放电影”、“保存电影”或“取消”(有一天会添加 Youtube 选项)。在操作表中,如果用户选择PlayMovie我调用 (void)playMovie 过程。在该过程中,我声明 *url 对象使用存储在videoFilePath. 在升级到 IOS 5 之前,它就像一个魅力一样工作。我只是尝试预先分配NSString videoFilePath内部(void)viewDidLoad,以便它使用分配而不是常量。但这并没有解决它。
我刚刚尝试将 XCODE 升级到 4.2。我不再收到消息“数据格式化程序暂时不可用”。但仍然与EXC_BAD_ACCESS.     
谢谢!谢谢!谢谢!