Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 使用变量时,Objective-C NSURL URLWithString似乎失败_Iphone_Objective C_Cocoa_Cocoa Touch - Fatal编程技术网

Iphone 使用变量时,Objective-C NSURL URLWithString似乎失败

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

这是我第一次在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;
}
-(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之前添加这一行操作完美无瑕,谢谢谢谢谢谢谢谢…我已经为此挠头好几天了!