2013-02-18 3 views
3

Я работаю над приложением, которое можно запустить по URL-адресу. Я уже определил свою схему URL, используя xcode на информационной странице. Я заполнил для идентификатора свой идентификатор Bundle и для URL-схем myapp.Передача параметров с использованием схемы url

Теперь, если я пытаюсь открыть в сафари MyApp: // Foo, он запускает мое приложение и останавливается на моей точки останова в

- (BOOL)application:(UIApplication *)application 
     openURL:(NSURL *)url 
sourceApplication:(NSString *)sourceApplication 
    annotation:(id)annotation 

метода.

Проблема - аннотация, url, application, parametersapplication parameters - nil. Поэтому я не могу передать параметры ...

enter image description here

+0

Какую версию iOS вы планируете/тестируете? – bdesham

+0

SDK 6.1, iOS 6.1 – Mert

+0

Вы говорите, что переменная 'url' этого метода равна nil или что параметрString' url' (поскольку это NSURL) равен нулю? Как вы определяете, что это ноль? –

ответ

0

После ненужной потери времени, я обнаружил, что проблема была отладчик. Это показывает, что URL равен нулю, и если я пытаюсь к описанию печати он говорит

Printing description of url: 
<nil> 

Но если я пытаюсь NSLog это показывает URL. И если поместить следующий код в методе

if (! url) { 
    return NO; 
} 

отладчик показывает также URL-адрес.

+0

В этом случае убедитесь, что ваш проект находится в режиме «отладки», а не в режиме «выпуска». В режиме выпуска, который по умолчанию, многие вещи могут быть оптимизированы – portforwardpodcast

+0

Он уже находится в режиме отладки. – Mert

0

Вы уверены, что ваш проект находится в режиме отладки !? См. Здесь http://nerdwa.com/index.php/2011/09/debugrelease-schemes-in-xcode-4/

+0

Да, я уверен. У меня также есть много препроцессорных директив, таких как #ifdef DEBUG в моем коде – Mert

+0

Ну, иногда отладчик делает это особенно на устройстве. Пока ваш nslog увидит значение, вы должны быть в порядке. Если вы сломаете и введите «po url», что вы вернетесь? – portforwardpodcast

+0

Также я могу спросить, как вы будете передавать данные? Могу ли я предложить использовать json-объект с кодировкой base64. Это позволяет структурированные данные, и это очень просто сделать – portforwardpodcast

Смежные вопросы