CFWriteStreamRef EXC_BAD_ACCESS Проблема?FTP - PullRequest
0 голосов
/ 11 августа 2011

Я пытаюсь подключиться к серверу ftp через iPhone SDK, вот мой ошибочный код (упрощенно):

NSURL *serverURL;
NSString *serverUsername;
NSString *serverPassword;
CFURLRef serverURLRef;
CFStringRef serverPasswordRef;
CFStringRef serverUsernameRef;

serverURL = [[NSURL alloc] initWithString: @"XX.XX.XX.XX"];
serverURLRef = (__bridge CFURLRef) serverURL;

serverUsername = [[NSString alloc] initWithString: @"********"];
serverUsernameRef = (__bridge CFStringRef)serverUsername;

serverPassword = [[NSString alloc] initWithString: @"********"];
serverPasswordRef = (__bridge CFStringRef)serverPassword;


CFWriteStreamRef stream = CFWriteStreamCreateWithFTPURL(kCFAllocatorDefault, serverURLRef);
    CFWriteStreamSetProperty(stream, kCFStreamPropertyFTPUserName, serverUsernameRef);
    CFWriteStreamSetProperty(stream, kCFStreamPropertyFTPPassword, serverPasswordRef);
    CFWriteStreamSetProperty(stream, kCFStreamPropertyFTPUsePassiveMode, kCFBooleanFalse);

    CFWriteStreamOpen(stream);

Я получаю ошибку «EXC_BAD_ACCESS» для строки: CFWriteStreamSetProperty (stream,kCFStreamPropertyFTPUserName, serverUsernameRef);

Когда я закомментирую эту строку, он получит ту же ошибку на следующей строке.Я думаю, что это может быть связано с утечкой памяти, но я не знаю точно, где я иду не так.

Заранее спасибо.

РЕДАКТИРОВАТЬ:

Я добавил утверждение, которое, кажется, показывает мне, что поток равен нулю даже после того, как он объявлен: assert (поток!= nil);

Утверждение не выполнено в этой строке.

Я попытался запустить приложение в Инструментах, и оно показало «обнаружены утечки», но не перечислило их: утечки винструменты http://i54.tinypic.com/1h47z6.png

1 Ответ

1 голос
/ 12 августа 2011

Я нашел решение своей проблемы для всех, кому это интересно.Я забыл предшествовать URL-адресу с помощью «ftp: //», который при вызове функции «CFWriteStreamCreateWithFTPURL» портил вещи, не устанавливая поток из-за неправильного URL-адреса.Таким образом, «поток» был установлен равным «ноль», потому что он не был установлен должным образом.

...