Объект-C & Cocoa Touch Issue, включающий скрининг экрана в iOS

Я пишу приложение iphone, которое сбрасывает URL-адрес www.drugs.com/imprints.php. Он принимает один из четырех параметров (имя, отпечаток, цвет, форма) и подключает его к параметру URL, который выглядит так:

http://www.drugs.com/imprints.php?action=search&imprint=%@&color=%@&shape=%@&drugname=%@ 

Вот фрагмент кода, который я написал, чтобы сделать скребок:

 NSString *name = [[NSString alloc] initWithFormat:@"%@", [ask text]]; NSString *imprint = [[NSString alloc] initWithFormat:@"%@", [imp text]]; NSString *color = [[NSString alloc] initWithFormat:@"%@", [col text]]; NSString *shape = [[NSString alloc] initWithFormat:@"%@", [sha text]]; NSString *address = @"http://www.drugs.com/imprints.php?action=search&drugname="; NSString *request = [NSString stringWithFormat:@"http://www.drugs.com/imprints.php?action=search&imprint=%@&color=%@&shape=%@&drugname=%@",imprint,color,shape,name]; NSString *escapedUrl = [request stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL *URL = [NSURL URLWithString:escapedUrl]; NSString *txtToScrape = [NSString stringWithContentsOfURL:URL encoding:NSASCIIStringEncoding error:&error]; NSString *drugName= [[[[txtToScrape componentsSeparatedByString:@"q="] objectAtIndex:1] componentsSeparatedByString:@">"] objectAtIndex:0]; NSString *drugImage = [[[[txtToScrape componentsSeparatedByString:@"images/pills/mmx/"] objectAtIndex:1] componentsSeparatedByString:@");"] objectAtIndex:0]; NSString *drugDesc = [[[[txtToScrape componentsSeparatedByString:@"/imprints/"] objectAtIndex:1] componentsSeparatedByString:@".html"] objectAtIndex:0]; 

В основном, что делает код, это информация о возврате лекарственного средства обратно в представление и помещает его в строки. Я использую componentsSeparatedByString и нахожу различные «ключевые» теги и слова в коде, и я возвращаю / разбираю их на основе этих артефактов в HTML.

Теперь мой вопрос: есть ли лучший способ сделать это? Я новичок в программировании на iOS и чувствую, что я пропускаю что-то, что было бы более эффективным. Также, если я буду распространять это в AppStore, было бы это законно, так как я очищаю сторонний веб-сайт? Я не планирую продавать его, но отдаю его бесплатно. Наконец, у меня есть кнопка выхода в пользовательском интерфейсе, какова законность наличия кнопки выхода в приложениях iOS? Является ли Apple красным флаг из-за этого? (кнопка выхода завершает (0);).

Извините, но я новичок в разработке Cocoa и iOS, поэтому заранее извиняюсь за вопросы, если они исправлены.

Если вы проверите TOS на http://www.drugs.com, вы, скорее всего, обнаружите, что они запрещают несанкционированные копии любых материалов, найденных на их сайте. Это, как говорится, все еще является законной серой областью. Компании, такие как 80legs, получают прибыль, сканируя веб-сайты, которые запрещают несанкционированное воспроизведение, а затем продают результаты. Имея это в виду, маловероятно, что вы столкнетесь с юридическими проблемами из-за вашего выскабливания.

Основываясь на других приложениях, которые я видел в App Store, я думаю, что маловероятно, что Apple тоже заметила или позаботилась.

У вас есть несколько вопросов в одном.

У вас не может быть кнопки выхода.

Цитата из HIG :

Не выходить из программы

Никогда не оставляйте приложение iOS программным путем, потому что люди склонны интерпретировать это как сбой. Однако, если внешние обстоятельства не позволяют вашему приложению функционировать должным образом, вы должны сообщить своим пользователям о ситуации и объяснить, что они могут с этим сделать. В зависимости от того, насколько серьезна неисправность приложения, у вас есть два варианта.

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

Если только некоторые из функций вашего приложения не работают, отобразите экран или предупреждение, когда люди активируют эту функцию. Отображать предупреждение только тогда, когда люди пытаются получить доступ к функции, которая не работает.

Что касается синтаксического анализа, вы можете использовать регулярные выражения в объективе c, но то, что вы выглядели хорошо. Для получения дополнительной информации см. Использование регулярных выражений в iPhone SDK или посмотрите на RegexKitLite .

Наконец, я не знаю законности скрипинга экрана. 🙁 Не юрист. Я видел хорошие сообщения об этом.

https://stackoverflow.com/questions/822380/how-legal-is-screen-scraping

Вы также должны взглянуть на запись Википедии на веб-скребке .

  • В iOS, используя CGPDFDocumentRef, почему мой PDF-файл имеет большие поля, а не всю страницу?
  • XCode - как установить переменную пути
  • как использовать ios callkit - расширение каталога вызовов?
  • Передача жестов касания
  • Могу ли я интегрировать тесты UIAutomation с помощью XCode и автоматически запускать их каждую ночь?
  • Как вы можете заполнить UITableView данными из двух массивов двух разных типов объектов?
  • как я могу разобрать строку ответа xml?
  • вид контейнера отсекает элементы, которые должным образом подходят в раскадровке
  • Не удалось создать моментальный снимок в Xcode 4
  • Проблемы с раскадровки на XIB?
  • «Перемещение переменной в состоянии требует инициализатора« Ошибка в Swift 2.0
  • Interesting Posts
    Давайте будем гением компьютера.