Я продолжаю получать ошибку (null)
, когда пытаюсь создать свой NSURL, чтобы открыть другое приложение.NSURL с JSON возвращает null
URL-адрес должен быть
ms-test-app://eventSourceId=evtSrcId&eventID=13675016&eventType=0&json={"meterresults":[{"clean":"2","raw":"2","status":"0"}]}
, но когда я пытаюсь построить мой URL это всегда нуль.
Сначала я думал, что это как-то связано с самим URL-адресом, но это то же самое, что я получил его из примера here.
Другая мысль заключалась в том, что у IOS возникли проблемы с двойными кавычками в JSON, но я заменил их %22
, но это тоже не сработает.
Вот код, где я строю URL:
NSString *jsonString = [NSString stringWithFormat:@"{%22meterresults%22:[{%22clean%22:%22%@%22,%22raw%22:%22%@%22,%22status%22:%22%@%22}]}", cleanReadingString, rawReadingString, status];
NSLog(@"JSON= %@",jsonString);
//Send the result JSON back to the movilizer app
NSString *eventSourceId = @"evtSrcId";
NSString *encodedQueryString = [NSString stringWithFormat:@"?eventSourceId=%@&eventID=%d&eventType=0&json=%@",
eventSourceId, _eventId, jsonString];[NSCharacterSet URLQueryAllowedCharacterSet]]
NSString *urlStr = [NSString stringWithFormat:@"%@%@",
[_endpointUrls objectForKey:[NSNumber numberWithInt:(int)_selectedEndpoint]],
encodedQueryString];
NSURL *url = [NSURL URLWithString:urlStr];
Я не знаю, где я ошибаюсь, и я был бы рад, если кто-то есть какие-либо идеи.
Заранее спасибо.
Предоставляет ли ваш код предупреждения или ошибки? Потому что 'NSString * encodedQueryString = [NSString stringWithFormat: @"? EventSourceId =% @ & eventID =% d & eventType = 0 & json =% @ ", eventSourceId, _eventId, jsonString]; [NSCharacterSet URLQueryAllowedCharacterSet]]' должен ... – Larme
Можете ли вы действительно отправить JSON как параметр URL? – Droppy
Спасибо за быстрые ответы. Я нашел свою ошибку. Проблема, когда скобки и я должны были заменить 'encodedQueryString' на' [jsonString stringByAddingPercentEncodingWithAllowedCharacters: [NSCharacterSet URLQueryAllowedCharacterSet]] '. Таким образом кодируются все фигурные скобки и двойные кавычки, что создает допустимый URL. Но у меня все еще есть проблема, что другое приложение действительно не обрабатывает URL-адрес. – Syrinscaper