如何使用 swift 从 ftp 服务器下载文件

Howto download file from ftp server using swift

您好,我尝试从 ftp 服务器下载 XML 文件,但 CFRreadStreamRead 函数出现问题。因为我不知道应该将什么设置为“_ buffer: UnsafeMutablePointer”参数。我从 apple documentation 获得此功能 在下面的代码中,您可以看到我目前是如何尝试的。我希望你能帮助我。

 public func openFTPConnection()
{
    var url: CFStringRef
    url = "Test" as NSString
    var requestURL: CFURLRef
    requestURL = CFURLCreateWithString(kCFAllocatorDefault, url, nil);

    let ftpStream = CFReadStreamCreateWithFTPURL(kCFAllocatorDefault, requestURL).takeRetainedValue()
    var state = CFReadStreamOpen(ftpStream)

    if state == 0
    {
        println("Fehler beim verbinden")
    }
    else
    {
        println("Verbindung erfolgreich")
    }

    var numBytesRead = 0
    var bufSize = 4096
    var buf = [UInt8](count: bufSize, repeatedValue: 0)

    do
    {
        numBytesRead = CFReadStreamRead(ftpStream, buf, bufSize)
    }
    while( numBytesRead > 0 );


    CFReadStreamClose(ftpStream)
}

对于一个UnsafeMutablePointer<Type>参数,可以传递一个[Type]数组 作为 "inout value" 通过 & (作为指向数组开头的指针传递):

numBytesRead = CFReadStreamRead(ftpStream, &buf, bufSize)

有关详细信息,请参阅 Interacting with C APIs "Using Swift with Cocoa and Objective-C" 文档。