应用程序在 assert() 上崩溃
Posted
技术标签:
【中文标题】应用程序在 assert() 上崩溃【英文标题】:app crashes on assert() 【发布时间】:2012-06-29 07:31:32 【问题描述】:我正在使用 ftp 协议在服务器上发送扩展名为 .m4a 的音频文件,首先我将此文件存储到我的文档目录路径中。我的控制台中的文档目录路径如下:
NSLog(@"filepath=%@",filePath);
assert([[NSFileManager defaultManager] fileExistsAtPath:filePath]);
在我的应用程序的 assert() 函数中,我不知道是什么原因。 我的控制台如下:
filepath=/Users/macmini2/Library/Application Support/iPhone Simulator/5.1/Applications/B2CFB7FF-A4BF-4B83-8DD1-102C5680C16C/Documents/9_39.m4a
Assertion failed: ([[NSFileManager defaultManager] fileExistsAtPath:filePath])
如果您有任何解决方案请提供 提前谢谢...
【问题讨论】:
原因是您要查找的文件在路径中不存在。我不知道你知道断言是如何工作的。我稍微解释一下。如果断言失败(在调试模式下),您的代码将在该行中断,以便您能够观察当前情况。您基本上可以删除该行。你的代码也一样。 但我在控制台中打印消息,它显示了文件的路径。 仅仅因为您可以打印文件的路径并不意味着该路径中必然存在任何文件。 【参考方案1】:您要查找的文件很可能不存在。
如需仔细检查,请输入:
ls "/Users/macmini2/Library/Application Support/iPhone Simulator/5.1/Applications/B2CFB7FF-A4BF-4B83-8DD1-102C5680C16C/Documents/9_39.m4a"
在终端窗口中。
如果您遇到错误,请检查您构建 filePath
的方式。
如何使 9_39.m4a 文件在 iPhone 上可用?它是应用程序包的一部分吗? (难道不应该在 Resources 文件夹中搜索它吗?)
【讨论】:
以上是关于应用程序在 assert() 上崩溃的主要内容,如果未能解决你的问题,请参考以下文章