initWithDelegate问题 - Blackraccoon

时间:2013-07-11 08:09:53

标签: ios objective-c ftp blackraccoon

我使用名为BlackRaccoon的软件包将文件上传到FTP服务器。我真的很挣扎着一个我根本无法弄清楚的真正基本的代表团概念。

在我的上传类.m文件中,我有一个调用BlackRaccoon上传请求的方法。我使用以下代码:

uploadFile = [BRRequestUpload initWithDelegate: self];

uploadFile.path = @"/filehere.txt";
uploadFile.hostname = @"xxx";
uploadFile.username = @"xxx";
uploadFile.password = @"xxx";

//we start the request
[uploadFile start];

在我的.h文件中,我有以下内容:

@interface myClass : NSObject <BRRequestDelegate>
{
BRRequestCreateDirectory *createDir;
BRRequestDelete * deleteDir;
BRRequestListDirectory *listDir;

BRRequestUpload *uploadFile;

NSData *uploadData;

}

每次编译和运行时,我都会在BlackRaccoon文件中的某处出现错误,例如:

  

__ 25- [BRStreamInfo openRead:] _ block_invoke [第190行]服务器没有响应。超时。

在获取此错误时,我发现自己在创建读取流的方法中,特别是:

    request.didOpenStream = NO;
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, timeout * NSEC_PER_SEC), dispatch_get_local_queue(), ^{
    if (!request.didOpenStream && request.error == nil)
    {
        InfoLog(@"No response from the server. Timeout.");
        request.error = [[BRRequestError alloc] init];
        request.error.errorCode = kBRFTPClientStreamTimedOut;
        [request.delegate requestFailed: request];
        [request.streamInfo close: request];
    }
});

我完全不知道这一点。我们的服务器已启动并运行,并且我们的Android设备或应用程序(例如“FTP精灵”)没有超时问题。

我很确定问题出在initWithDelegate的东西上。我只是不认为我正确委托,但我不知道为什么。有人有什么想法吗?我知道我需要(id)init某处,但我不知道在哪里或如何。

谢谢!

2 个答案:

答案 0 :(得分:0)

刚刚检查了BlackRaccoon Git上的uploadFile函数,我发现在他们的示例中,他们没有alloc一个BRRequestUpload对象,但是这样称呼它:

uploadFile = [BRRequestUpload initWithDelegate: self];

这可能是您坠机的原因吗?

答案 1 :(得分:0)

请在BRRequest.m文件中进行一行更改。

- (id)initWithDelegate:(id<BRRequestDelegate>)aDelegate功能中。 改变

self.passiveMode = YES;

self.passiveMode = NO;

它会起作用....

这种改变对我有用。