可可错误260

时间:2011-02-02 01:20:09

标签: objective-c cocoa ios ftp

我一直收到这个错误。我通过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;
}

在设备中,attributesError为true,在模拟器中为false

6 个答案:

答案 0 :(得分:56)

  

我已尝试清理目标,重置设备,重置xcode。

对随机目标的盲目攻击从来都不是一个好的调试技术。充其量,你将解决问题而不知道如何解决问题。在最坏的情况下,你会打破别的东西。

相反,找出问题是什么。对于“Cocoa错误”,您需要查看FoundationErrors.h和CoreDataErrors.h(以及未针对Cocoa Touch时的AppKitErrors.h)。前一个文件给出了Cocoa错误260的名称:

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

您无法获取该文件的属性,因为它不存在(在您的设备上)。

您可能希望修改问题,以包含创建存储到self.filePath的路径的代码。

答案 1 :(得分:7)

enter image description here

这个解决方案解决了我的问题,希望它能帮到你。

答案 2 :(得分:5)

我知道Peter Hosey已经解决了这个问题,但我想补充一些东西。如果要快速查找错误,可以使用终端中的简单命令找到它的定义:

ief2s-iMac:Frameworks ief2$ cd /System/Library/Frameworks
ief2s-iMac:Frameworks ief2$ grep '260' $(find . -name "*Errors.h" )
  • cd到您的frameworks目录
  • 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$ 

你当然可以通过在'Error = 260'上执行grep来更好地指定它:

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

答案 3 :(得分:1)

+(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:表示在您指定的路径中找不到该文件(再次创建数据库然后添加您的项目)。

答案 4 :(得分:1)

在我的情况下,我的260错误是由于路径中的文件夹是camelCase。

在模拟器中,它在OSX下运行良好。 然而,在iOS设备上,案例变得非常重要。

即。 我引用了一个名为``@" / Data / somethings /"```的文件夹 在磁盘上这是/ data / somethings /

您必须为iOS保持大写/小写的一致性。 所以我必须确保它总是被称为/ data / somethings /

答案 5 :(得分:0)

可以快速删除此错误。请不要将数据库文件拖放到项目中。转到"添加文件"选项然后导入文件。我试过了,错误消失了......