0

这是我正在使用的代码:

NSFileManager* defaultMgr = [NSFileManager defaultManager];
if (![defaultMgr fileExistsAtPath:path]) {
 return nil;
}

其中 path 是系统上文件的 url,例如:“file://localhost/private/var/mobile/Applications/blahblahblah”

当调用 fileExistsAtPath: 时,这会与 SIGABRT 一起崩溃。该文件确实存在,也许字符串格式不是此方法所希望的,但它应该只返回 NO。这段代码是一个非常流行的库的一部分,虽然我不需要检查路径的存在,但我真的很想了解这里发生了什么,以防我需要直接使用这个方法。

特别:

  1. 图书馆作者是否正确使用了这种方法?
  2. 人们如何从这种方法中捕获或期望异常?
    (SDK 文档没有讨论此方法可能引发的异常。)
  3. 这是我应该向 Apple 报告的错误吗?

更多细节:我在装有 iOS 4.1 的 iPhone 4 设备上运行它

4

1 回答 1

0

想到几个问题:

1) NSFileManager 使用路径而不是 URL。不需要“file://”。

2)它需要像@“...”这样的NSStrings。

3)您应该尝试将文件路径保留在应用程序的沙箱中。

于 2010-10-24T22:19:24.107 回答