Objective-C NSURL URLWithString, кажется, терпит неудачу при использовании переменной - PullRequest
2 голосов
/ 01 декабря 2009

Итак, это моя первая публикация в StackOverflow, поэтому извините, если мой запрос сформирован неправильно.

Я пытаюсь загрузить переменную с типом NSString в NSURL со следующей строкой:

audioPlayer = [[AudioPlayer alloc] initPlayerWithURL:[NSURL URLWithString:aArchiveItem.streamURL] delegate:self];

А в реализации AudioPlayer я использую:

-(id)initPlayerWithURL:(NSURL *)url delegate:(id<AudioPlayerDelegate>) aDelegate {
    self = [super init];

    delegate = aDelegate;

    queue = [[AudioQueue alloc] initQueueWithDelegate:self];

    fileStream = [[AudioFileStream alloc] initFileStreamWithDelegate:self];
    [fileStream open];

    request = [[AudioRequest alloc] initRequestWithURL:url delegate:self];

    return self;
}

Когда я жестко кодирую строку URL (например, URLWithString: @ "http://www.example.com"), вызов audioPlayer работает безупречно, но при попытке заполнить его значением aArchiveItem.streamURL происходит сбой ...

Что я здесь не так делаю?

Ответы [ 2 ]

5 голосов
/ 01 декабря 2009

вероятно, ваш URL имеет пробелы, прежде чем использовать URL, попробуйте сделать следующее:

aArchiveItem.streamURL=[aArchiveItem.streamURL stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
4 голосов
/ 01 декабря 2009

Используйте отладчик. Разбейте первую строку, которую вы перечислили, и оцените, что на самом деле представляет собой aArchiveItem.streamURL. Это действительно правильно сформированная строка URL?

Кроме того, «это терпит неудачу» недостаточно информации. Как именно? Я предполагаю, что URL-адрес, который вы пытаетесь создать с помощью aArchiveItem.streamURL, равен nil (потому что строка недопустима), и вещи, ожидающие URL-адрес, вызывают беспокойство, но это только предположение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...