现有程序不能在iOS5上运行

thp*_*sch 6 incompatibility ios5

我在AppStore中可用的两个程序在iOS3和iOS4上运行没有任何问题与iOS5不兼容.

在我看来,Apple已经改变了一些东西,使开发人员的生活变得更加困难.

其中一个问题是:

- (BOOL) webView: (UIWebView *) webView shouldStartLoadWithRequest:(NSURLRequest *) request navigationType: (UIWebViewNavigationType) navigationType {
    // Only do something if a link has been clicked
    if (navigationType == UIWebViewNavigationTypeLinkClicked) {
        NSString *link = [[request URL] absoluteString];
        if ([link hasPrefix:@"playSound:"]) {
            [PlayAudio playAudio: [link substringFromIndex:10]];
            return NO;
        }
    }
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

产生问题的那条线是

NSString *link = [[request URL] absoluteString];
Run Code Online (Sandbox Code Playgroud)

在我得到未经修改的点击链接副本之前.在iOS3和iOS4中它仍然是相同的.但在iOS5上它只转换为小写.下一行

if ([link hasPrefix:@"playSound:"]) {
Run Code Online (Sandbox Code Playgroud)

永远不会成真.所以我不得不将代码更改为

- (BOOL) webView: (UIWebView *) webView shouldStartLoadWithRequest:(NSURLRequest *) request navigationType: (UIWebViewNavigationType) navigationType {
    // Only do something if a link has been clicked
    if (navigationType == UIWebViewNavigationTypeLinkClicked) {
        NSString *link = [[[request URL] absoluteString] lowercaseString];
        if ([link hasPrefix:@"playsound:"]) {
            [PlayAudio playAudio: [link substringFromIndex:10]];
            return NO;
        }
    }
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

现在我期待所有iOS版本的小写,因此与小写字符串比较.

您如何看待:是否需要在新的iOS版本上进行此类更改?