Не в этом случае. myLocalVar падает из объема, как только функция возвращается, так установка в NULL ссылки абсолютно ничего не делает.
Поведение действительно отличается между вызовом -[UIApplication openURL:]
с URL-адресом tel:
и нажатием ссылки на тот же URL-адрес в UIWebView
.
Использование UIWebView
вместо UILabel может иметь некоторые недостатки, но вам не нужно отображать UIWebView
, чтобы получить tel
поведение обработки URL. Вместо этого просто загрузите URL-запрос tel
в экземпляр UIWebView, не добавляя его в иерархию представлений.
Например:
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface PhoneCaller : NSObject
{
@private
UIWebView *webview;
}
- (void)callTelURL:(NSURL *)url;
@end
@implementation
- (id)init
{
self = [super init];
if (self)
{
webview = [[UIWebView alloc] init];
}
return self;
}
- (void)callTelURL:(NSURL *)url
{
[webview loadRequest:[NSURLRequest requestWithURL:url]];
}
- (void)dealloc
{
[webview release];
[super dealloc];
}
@end
Позвольте мне немного упростить. Все, что вам нужно, это маленький фрагмент:
UIWebView *callWebview = [[UIWebView alloc] init];
NSURL *telURL = [NSURL URLWithString:@"tel:number-to-call"];
[callWebview loadRequest:[NSURLRequest requestWithURL:telURL]];
, который я получил здесь .
* Недавно успешно протестировано на iOS 5.0.