Iphone 使用变量时,Objective-C NSURL URLWithString似乎失败
这是我第一次在StackOverflow上发帖,如果我的请求格式不好,请原谅 我正在尝试使用以下行将NSString类型的变量加载到NSURL中:Iphone 使用变量时,Objective-C NSURL URLWithString似乎失败,iphone,objective-c,cocoa,cocoa-touch,Iphone,Objective C,Cocoa,Cocoa Touch,这是我第一次在StackOverflow上发帖,如果我的请求格式不好,请原谅 我正在尝试使用以下行将NSString类型的变量加载到NSURL中: audioPlayer = [[AudioPlayer alloc] initPlayerWithURL:[NSURL URLWithString:aArchiveItem.streamURL] delegate:self]; 在AudioPlayer实现中,我使用的是: -(id)initPlayerWithURL:(NSURL *)url de
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;
}
-(id)initPlayerWithURL:(NSURL*)url delegate:(id”)对audioPlayer的调用工作正常,但尝试使用aArchiveItem.streamURL的值填充时失败
我在这里做错了什么?使用调试器。在您列出的第一行中断,并评估“aArchiveItem.streamURL”当时实际上是什么。它实际上是一个格式正确的URL字符串吗
此外,“它失败”并不是足够的信息。具体以何种方式?我猜您正试图使用aArchiveItem.streamURL创建的URL为nil(因为字符串无效),并且期望URL的内容正在发出牢骚,但这只是一个猜测。可能您的URL有空格,请在使用URL之前尝试执行以下操作:
aArchiveItem.streamURL=[aArchiveItem.streamURL stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
您是否在调用之前打印出字符串以检查字符串是否正确?即NSLog(@“”,aArchiveItem.streamUR);当按建议放置断点时,单步执行代码时,会显示aArchiveItem.streamURL的值为\n\t\thttp://www.example.com/example.mp3 澄清“它失败了”“我的意思是它无法下载请求的文件。。。在以下位置设置断点:-(id)initPlayerWithURL:(NSURL*)url delegate:(id)aDelegate{它将url的值显示为零如果您的url确实以\n\t\t开头,那么它不是一个有效的url字符串。或者我误解了吗?在调用audioPlayer之前添加这一行操作完美无瑕,谢谢谢谢谢谢谢谢…我已经为此挠头好几天了!