所以这是我在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的值填充它时,它会失败...
我在这里做错了什么?
答案 0 :(得分:5)
在您使用网址之前,可能您的网址有空格尝试执行以下操作:
aArchiveItem.streamURL=[aArchiveItem.streamURL stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
答案 1 :(得分:4)
使用调试器。打破你列出的第一行并评估当时“aArchiveItem.streamURL”实际上是什么。它实际上是一个格式良好的URL字符串吗?
另外,“它失败”的信息不足。究竟是什么方式?我猜你用aArchiveItem.streamURL创建的URL是nil(因为字符串无效),并且期待URL的东西是抓紧的,但这只是猜测。