web-dev-qa-db-fra.com

Erreur cacao 260

Je continue à avoir cette erreur. Je télécharge via FTP sur un serveur. Il fonctionne correctement et télécharge complètement lors de l'exécution dans le simulateur, mais lorsque je le provisionne sur mon iPhone, il indique: Error Occurred. Upload failed: The operation couldn’t be completed. (Cocoa error 260.)

Aucune suggestion? Je débogue et fais des recherches depuis des heures et je n'arrive pas à comprendre cela. J'ai essayé de nettoyer des cibles, de réinitialiser un périphérique, de réinitialiser xcode. 

Une chose que j'ai réduite était:

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

Dans le périphérique attributsErreur est vrai, dans le simulateur, il est faux

28
Chris

J'ai essayé de nettoyer des cibles, de réinitialiser un périphérique, de réinitialiser xcode.

Le martèlement aveugle sur des cibles aléatoires n’est jamais une bonne technique de débogage. Au mieux, vous corrigerez le problème sans savoir comment. Au pire, vous allez casser quelque chose d'autre.

Au lieu de cela, découvrez quel est le problème . Pour une «erreur Cocoa», vous aurez intérêt à regarder dans FoundationErrors.h et CoreDataErrors.h (et AppKitErrors.h lorsque vous ne ciblez pas Cocoa Touch). L'ancien fichier donne le nom à l'erreur de cacao 260:

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

Vous ne pouvez pas obtenir les attributs de ce fichier car il n’existe pas (sur votre appareil).

Vous voudrez peut-être modifier votre question pour inclure le code qui crée le chemin que vous stockez dans self.filePath.

55
Peter Hosey

enter image description here

Cette solution résout mon problème, j'espère qu'elle vous aidera.

7
Burhan Ahmad

Je sais que Peter Hosey a déjà résolu cette question, mais je veux ajouter quelque chose. Si vous voulez trouver votre erreur rapidement, vous pouvez utiliser une simple commande dans le terminal pour localiser sa définition:

ief2s-iMac:Frameworks ief2$ cd /System/Library/Frameworks
ief2s-iMac:Frameworks ief2$ grep '260' $(find . -name "*Errors.h" )
  • cd dans votre répertoire frameworks
  • grep tous les fichiers se terminant par 'Errors.h' pour le code d'erreur:

Changer le «260» avec le code d'erreur que vous voulez. La commande ci-dessus renvoie ce qui suit:

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$ 

Vous pourriez bien sûr mieux le spécifier en faisant un grep sur 'Erreur = 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$ 

J'espère que cela pourra vous aider dans votre développement futur, Ief2

5
v1Axvw

Dans mon cas, mon erreur 260 était due à un dossier dans le chemin Being camelCase.

Dans le simulateur, cela fonctionnait très bien sous OSX. Cependant, sur un appareil iOS, le cas est devenu très important.

I.E. Je faisais référence à un dossier nommé `` @ "/ Data/somethings /" `` []

Vous devez maintenir une cohérence de majuscules/minuscules pour iOS. Je devais donc m'assurer que cela faisait toujours référence à/data/somethings /

1
Danoli3
+(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]);
    }
}

}

Remarque: erreur 260: le fichier est introuvable dans le chemin que vous avez spécifié (créez à nouveau une base de données puis ajoutez votre projet).

1
Venkatesh G

Cette erreur peut être supprimée très rapidement. Veuillez ne pas faire glisser le fichier de base de données dans le projet. Allez dans l'option "Ajouter des fichiers" puis importez le fichier. J'ai essayé cela et l'erreur a disparu .. 

0
Aditya Sharma