【问题标题】:What causes "invalid CFStringRef" in this code?是什么导致此代码中出现“无效的 CFStringRef”?
【发布时间】:2013-01-07 04:08:30
【问题描述】:

我只是尝试播放苹果的 HLS 示例流。我的代码很简单:

- (IBAction)playHLS:(id)sender {
    NSString* str = @"https:​/​/​devimages.apple.com.edgekey.net/​resources/​http-streaming/​examples/​bipbop_16x9/​bipbop_16x9_variant.m3u8";
    NSURL *url = [[NSURL alloc] initWithString:str];


    MPMoviePlayerViewController *theMovie = [[MPMoviePlayerViewController alloc]
                                             initWithContentURL: url];

    [self presentMoviePlayerViewControllerAnimated:theMovie];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMovieFinishedCallback:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification object:theMovie];
}

调试显示由于<invalid CFStringRef>导致url没有正确初始化

我错过了什么?

【问题讨论】:

    标签: ios nsurl cfstring


    【解决方案1】:

    字符串中有几个 Unicode 零宽度空格字符,在每个 :/ 字符之后。

    例如,如果您将其粘贴到 this online UTF-8 decoder 中,您就可以看到它们。他们是Unicode character 0x200B

    【讨论】:

      【解决方案2】:

      这很奇怪!

      问题是我从浏览器复制并粘贴了 url。输入代码后代码正常运行。

      仍然不知道为什么,希望对遇到同样问题的人有所帮助。

      【讨论】:

      • @KurtRevis,我认为您应该将其添加为答案。问题的原因是因为那些零宽度字符。
      猜你喜欢
      • 2021-10-28
      • 2019-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-28
      • 1970-01-01
      • 2012-08-14
      相关资源
      最近更新 更多