Какао ошибка 260 - PullRequest
       2

Какао ошибка 260

29 голосов
/ 02 февраля 2011

Я получаю эту ошибку.Я загружаю через 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;
}

В атрибутах устройства ошибка равна true, в симуляторе - false

Ответы [ 6 ]

56 голосов
/ 03 февраля 2011

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

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

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

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

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

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

7 голосов
/ 21 апреля 2014

enter image description here

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

5 голосов
/ 03 февраля 2011

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

ief2s-iMac:Frameworks ief2$ cd /System/Library/Frameworks
ief2s-iMac:Frameworks ief2$ grep '260' $(find . -name "*Errors.h" )
  • перейдите в каталог фреймворков
  • 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

1 голос
/ 17 октября 2015

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

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

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

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

1 голос
/ 21 ноября 2014
+(DataManager*)getSharedInstance{
if (!sharedInstance) {
    sharedInstance = [[super allocWithZone:NULL]init];
    [sharedInstance copyDatabaseIntoDocumentsDirectory];
}
return sharedInstance;

}

- (void) 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: означает, что файл не найден по путиВы указали (еще раз создайте БД, а затем добавьте свой проект).

0 голосов
/ 17 февраля 2014

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...