Подтвердить что ты не робот

Cocoa ошибка 260

Я продолжаю получать эту ошибку. Я загружаю через ftp на сервер. Он отлично работает и полностью загружается во время работы в симуляторе, но когда я предоставляю его на своем iPhone, он говорит: Error Occurred. Upload failed: The operation couldn’t be completed. (Cocoa error 260.)

Любые предложения? Я отлаживаю и исследую часами и не могу понять это. Я попытался очистить цели, сбросить устройство, сбросить xcode.

Одна вещь, которую я сузила, была:

NSError *attributesError = nil;
NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:self.filePath error:&attributesError];
if (attributesError) {
    [self failWithError:attributesError];
    return;
}

В атрибутах deviceError истинно, в симуляторе это false

4b9b3361

Ответ 1

Я пробовал очистить цели, сбросить устройство, сбросить xcode.

Слепой удар по случайным целям никогда не является хорошей технологией отладки. В лучшем случае вы устраните проблему и не знаете, как это сделать. В худшем случае вы сломаете что-то еще.

Вместо этого выясните, в чем проблема. Для "ошибки Cocoa" вы захотите посмотреть в FoundationErrors.h и CoreDataErrors.h(и AppKitErrors.h, если таргетинг не будет Cocoa Touch). В предыдущем файле указано имя для ошибки Cocoa 260:

NSFileReadNoSuchFileError = 260,                        // Read error (no such file)

Вы не можете получить атрибуты этого файла, потому что он не существует (на вашем устройстве).

Вы можете изменить свой вопрос, чтобы включить код, который создает путь, который вы храните в self.filePath.

Ответ 2

enter image description here

Это решение разрешает мою проблему, я надеюсь, что это поможет вам.

Ответ 3

Я знаю, что Питер Хосей уже решил этот вопрос, но я хочу что-то добавить. Если вы хотите быстро найти свою ошибку, вы можете использовать простую команду в терминале для определения ее определения:

ief2s-iMac:Frameworks ief2$ cd /System/Library/Frameworks
ief2s-iMac:Frameworks ief2$ grep '260' $(find . -name "*Errors.h" )
  • cd в каталог фреймворков
  • grep все файлы, заканчивающиеся на "Errors.h" для кода ошибки:

Измените "260" с кодом ошибки, который вы хотите. Вышеупомянутая команда возвращает следующее:

ief2s-iMac:Frameworks ief2$ grep '260' $(find . -name "*Errors.h" )
./CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers/MacErrors.h:  midiDupIDErr                  = -260, /*duplicate client ID*/
./CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers/MacErrors.h:  kECONNREFUSEDErr              = -3260, /* Connection refused           */
./Foundation.framework/Versions/C/Headers/FoundationErrors.h:    NSFileReadNoSuchFileError = 260,                        // Read error (no such file)
ief2s-iMac:Frameworks ief2$ 

Вы могли бы, конечно, лучше указать его, выполнив grep на 'Error = 260':

ief2s-iMac:Frameworks ief2$ grep 'Error = 260' `find . -name "*Errors.h"`
./Foundation.framework/Versions/C/Headers/FoundationErrors.h:    NSFileReadNoSuchFileError = 260,                        // Read error (no such file)
ief2s-iMac:Frameworks ief2$ 

Надеюсь, это поможет вам в дальнейшем развитии, ief2

Ответ 4

+(DataManager*)getSharedInstance{
if (!sharedInstance) {
    sharedInstance = [[super allocWithZone:NULL]init];
    [sharedInstance copyDatabaseIntoDocumentsDirectory];
}
return sharedInstance;

}

- (недействительными) copyDatabaseIntoDocumentsDirectory {

// Set the documents directory path to the documentsDirectory property.
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
self.documentsDirectory = [paths objectAtIndex:0];

// Keep the database filename.
self.databaseFilename = DATABASE_FILENAME;

// Check if the database file exists in the documents directory.
destinationPath = [self.documentsDirectory stringByAppendingPathComponent:self.databaseFilename];

if (![[NSFileManager defaultManager] fileExistsAtPath:destinationPath]) {
    // The database file does not exist in the documents directory, so copy it from the main bundle now.
    NSString *sourcePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:self.databaseFilename];
    NSError *error;
    [[NSFileManager defaultManager] copyItemAtPath:sourcePath toPath:destinationPath error:&error];

    // Check if any error occurred during copying and display it.
    if (error != nil) {
        NSLog(@"%@", [error localizedDescription]);
    }
}

}

Примечание: ошибка 260: это означает, что файл не найден в указанном вами пути (еще раз создайте БД, а затем добавьте проект).

Ответ 5

Эта ошибка может быть быстро удалена vey. Не перетаскивайте файл базы данных в проект. Перейдите в "Добавить файлы", а затем импортируйте файл. Я попробовал это, и ошибка исчезла.

Ответ 6

В моем случае моя ошибка 260 произошла из-за папки на пути, являющейся camelCase.

В симуляторе он работал отлично под OSX. Однако на устройстве iOS дело стало очень важным.

т.е. Я ссылался на папку под названием `@@/Data/somethings/" `` ` На диске это было /data/somethings/

Вы должны поддерживать согласованность прописных/строчных букв для iOS. Поэтому я должен был убедиться, что он всегда упоминается как/data/somethings/