如何使用swift

时间:2015-04-24 09:40:26

标签: ios swift ftp

您好我尝试从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)
}

1 个答案:

答案 0 :(得分:0)

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

numBytesRead = CFReadStreamRead(ftpStream, &buf, bufSize)

有关详细信息,请参阅中的Interacting with C APIs “将Swift与Cocoa和Objective-C一起使用”文档。