现有计划没有';不要在iOS5上运行
我的两个程序在AppStore中可用数月,并且在iOS3和iOS4上运行时没有任何问题,但它们与iOS5不兼容 在我看来,苹果已经改变了一些事情,让开发者的生活变得更加艰难 其中一个问题是:现有计划没有';不要在iOS5上运行,ios5,incompatibility,Ios5,Incompatibility,我的两个程序在AppStore中可用数月,并且在iOS3和iOS4上运行时没有任何问题,但它们与iOS5不兼容 在我看来,苹果已经改变了一些事情,让开发者的生活变得更加艰难 其中一个问题是: - (BOOL) webView: (UIWebView *) webView shouldStartLoadWithRequest:(NSURLRequest *) request navigationType: (UIWebViewNavigationType) navigationType {
- (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;
}
造成问题的原因是
NSString *link = [[request URL] absoluteString];
在我得到点击链接的未修改副本之前。在iOS3和iOS4中,它仍然是相同的。但在iOS5上,它仅转换为小写。
下一行
if ([link hasPrefix:@"playSound:"]) {
永远不会成为现实。所以我不得不把代码改成
- (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;
}
现在,我希望所有版本的iOS都使用小写字母,因此将其与小写字符串进行比较
您认为:在新的iOS版本上进行这样的更改是必要的吗?这样的更改不是一时兴起的,但可能会出错。您能否显示[request URL]的结果以及对其调用absoluteString的结果?