Открытие NSURL с помощью строковой переменной - iPhone - PullRequest
4 голосов
/ 02 апреля 2011

У меня есть переменная с именем storeURL в формате www.xxxxx.com. Я пытаюсь использовать приведенный ниже код для открытия этого URL в Safari, когда пользователь нажимает кнопку.

-(IBAction)launchWeb {

    NSString *url = [NSString stringWithFormat: @"%@",
                     storedURL];

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];  
}

Однако приложение вылетает при нажатии кнопки.

Может кто-нибудь помочь исправить мой код?

EDIT

код mvds падает с:

2011-04-02 14: 01: 41.542 Лондон [16791: 207] + [NSURL urlWithString:]: нераспознанный селектор отправлен в класс 0x103dcbc 2011-04-02 14: 01: 41.545 Лондон [16791: 207] * Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «+ [NSURL urlWithString:]: нераспознанный селектор, отправленный в класс 0x103dcbc» * стек вызовов при первом броске: ( 0 CoreFoundation 0x00fd95a9 исключениеПроцесс + 185 1 libobjc.A.dylib 0x0112d313 objc_exception_throw + 44 2 CoreFoundation 0x00fdb17b + [NSObject (NSObject) hasNotRecognizeSelector:] + 187 3 CoreFoundation 0x00f4a966 __ пересылка + 966 4 CoreFoundation 0x00f4a522 _CF_forwarding_prep_0 + 50 5 London 0x00006bce - [DetailViewController launchWeb] + 126 6 UIKit 0x0022b4fd - [UIApplication sendAction: to: from: forEvent:] + 119 7 UIKit 0x002bb799 - [UIControl sendAction: to: forEvent:] + 67 8 UIKit 0x002bdc2b - [UIControl (Internal) _sendActionsForEvents: withEvent:] + 527 9 UIKit 0x002bc7d8 - [Утилиты UIControl Завершено: withEvent:] + 458 10 UIKit 0x004be4de _UIGestureRecognizerSortAndSendDelayedTouches + 3609 11 UIKit 0x004bec53 _UIGestureRecognizerUpdateObserver + 927 12 CoreFoundation 0x00fba89b CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION + 27 13 CoreFoundation 0x00f4f6e7 __CFRunLoopDoObservers + 295 14 CoreFoundation 0x00f181d7 __CFRunLoopRun + 1575 15 CoreFoundation 0x00f17840 CFRunLoopRunSpecific + 208 16 CoreFoundation 0x00f17761 CFRunLoopRunInMode + 97 17 GraphicsServices 0x0151a1c4 GSEventRunModal + 217 18 GraphicsServices 0x0151a289 GSEventRun + 115 19 UIKit 0x00239c93 UIApplicationMain + 1160 20 Лондон 0x00001ee9 основной + 121 21 Лондон 0x00001e65 старт + 53

1 Ответ

6 голосов
/ 02 апреля 2011

URL, вероятно, nil, так как "www.xxxxxxx.com" не является URL-адресом.Попробуйте

 NSString *urlstring = [NSString stringWithFormat:@"http://%@/",storedURL];
 NSURL *url = [NSURL URLWithString:urlstring];
 NSLog(@"url = %@",url);
 [[UIApplication sharedApplication] openURL:url];

Если это не поможет, пожалуйста, поделитесь выводом (трассировка стека), приведенным в окне консоли.

...