可可错误260

Chr*_*ris 29 ftp cocoa objective-c ios

我一直收到这个错误.我通过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;
}
Run Code Online (Sandbox Code Playgroud)

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

Pet*_*sey 57

我试过清理目标,重置设备,重置xcode.

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

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

NSFileReadNoSuchFileError = 260,                        // Read error (no such file)
Run Code Online (Sandbox Code Playgroud)

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

您可能希望编辑问题以包含创建存储路径的代码self.filePath.


小智 7

在此输入图像描述

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


v1A*_*xvw 5

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

ief2s-iMac:Frameworks ief2$ cd /System/Library/Frameworks
ief2s-iMac:Frameworks ief2$ grep '260' $(find . -name "*Errors.h" )
Run Code Online (Sandbox Code Playgroud)
  • 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$ 
Run Code Online (Sandbox Code Playgroud)

您当然可以通过在'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$ 
Run Code Online (Sandbox Code Playgroud)

我希望这可以帮助你进一步发展,ief2

  • 你应该使用`-w`来搜索260作为"整个单词",而不是其他东西的子串.您不希望匹配2600,1260,260.35等.当我不想特别想要搜索正则表达式时,我也更喜欢使用-F(固定字符串).最后,如果你使用zsh,你可以在一行中进行搜索:`grep -RFw 260/System/Library/Frameworks/**/*Errors.h` (2认同)