2010-10-24 4 views
0

Вот код, я использую:NSFileManager fileExistsAtPath: сбои с SIGABRT на iOS4.1, почему?

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

Где путь URL-адрес к файлу в системе, как: "файл: // локальный/частный/вар/мобильный/Applications/blahblahblah"

Сбой при использовании SIGABRT при вызове fileExistsAtPath:. Файл существует, и, возможно, формат строки не соответствует этому методу, но он должен просто вернуть NO. Этот код является частью очень популярной библиотеки, и, хотя мне не нужно строго проверять существование пути, я действительно хочу понять, что здесь происходит, если мне когда-либо понадобится использовать этот метод напрямую.

В частности:

  1. Является автором библиотеки, используя этот метод правильно?
  2. Как можно поймать или ожидать исключения из этого метода?
    (В документах SDK не обсуждается, какие исключения могут быть выбраны этим методом.)
  3. Является ли это ошибкой, которую я должен сообщить Apple?

Еще одна деталь: Я бегу это на моем устройстве iPhone 4 с прошивкой 4.1

ответ

0

Несколько вопросов приходит на ум:

1) NSFileManager с путями не URL. Нет необходимости в файле: //.

2) Ему нужны NSStrings, такие как @ "...".

3) Вы должны попытаться сохранить файловые пути в изолированной программной среде вашего приложения.