#iphone #uitableview #wsdl #uitextfield #stubs
#iPhone #uitableview #wsdl #uitextfield #заглушка
Вопрос:
В моем приложении я использую некоторые службы .net asmx (в качестве серверной части) для получения некоторых данных и заполнения их в своих представлениях. В одном из модулей мне нужно отредактировать и сохранить данные, которые я получаю от сервисов.При этом я получаю несколько значений rowkeyvalues и, соответственно, создаю эти многочисленные ячейки строк в моем tableview, который также состоит из двух UITextFields, которые отображают некоторый уникальный код и комментарии.
Теперь, если мне нужно отредактировать и сохранить некоторые поля, мне нужно сопоставить каждое из этих rowkeys с каждой ячейкой строки, и после этого я создаю объект, который в основном является прокси-классом wsdl, который я сгенерировал с помощью Sudzc, и передаю каждый набор данных, сериализую его в XML и публикую через SOAP.
Настоящая проблема здесь в том, что я не понимаю, как сопоставить каждый уникальный rowkeys с каждой ячейкой строки и создать уникальный набор данных (который в основном содержит и другие поля, включая rowkey) для каждой строки и передать его прокси-объекту (заглушки WSDL).
Комментарии:
1. Дайте нам немного кода о том, как вы создаете ячейку.
2. Привет, Ник, я создаю ячейки подкласса UITableViewCell. С Xib это довольно легко сделать. моя tableviewcell должна использовать Ivars (для двух текстовых полей), чтобы отображать уникальный код и комментарии, которые я получаю от сервиса. Извините, 2 говорю, что сейчас работаю над Windows m / c, поэтому могу поделиться любым кодом.
3. Можете ли вы задать более конкретный вопрос? трудно понять, чего вы пытаетесь достичь. Один совет, однако, никогда не думайте о tableViewCell как о части данных / модели. Внесите все свои изменения, отредактируйте, удалите в DataModel, и пусть TableView это отразит. Не пытайтесь связать DataRow со строкой UITableView, это просто приведет к беспорядку и в конечном итоге пойдет не так.
4. @Ricki: да, этот вопрос стал довольно запутанным, потому что я тоже запутался с этой вещью. В любом случае, мой вопрос был в обратном направлении, отредактируйте в tableviewcell и сохраните его в DataModel (больше похоже на динамическую инъекцию) и отправьте его в удаленную службу. Набор данных составляет большую часть . Термины чистого типа.
Ответ №1:
Не уверен, что понимаю вашу проблему, но я могу придумать 2 способа сопоставить ячейку строки с чем-либо. 1. Каждая ячейка UITableViewCell является подклассом UIView, и поэтому у нее есть атрибут «tag», который является int. Вы можете установить это и проверить его значение. 2. Когда пользователь нажимает на строку, вызывается TableView:didSelectRowAtIndexPath: . indexPath.row — это значение int, которое задает абсолютное расположение строки в своем разделе (и если только в одном разделе, то во всей таблице).
Обычно в cellForRowAtIndexPath: вы извлекаете свои резервные данные, соответствующие indexPath.row, и заполняете ячейку. Вы также могли бы установить тег ячейки в этой точке.
Это связывает воедино строку, ячейку и данные. Надеюсь, это поможет. -Майк
Комментарии:
1. Привет, Майк, спасибо за твой пост. но если вы внимательно прочитаете мой пост, вы можете увидеть, что я упомянул, что строки создаются в соответствии с количеством строк, которые я получаю от сервиса. Допустим, из служб поступает 15 строк, поэтому создаются ячейки 15 строк, которые я создаю, подклассируя uitableviewcell.
2. Итак? 15 строк, по 5000 строк, каждая из которых может иметь уникальный тег и ячейку. В чем проблема? Я имею в виду, что — я не знаю, какую проблему вы пытаетесь решить.
3. @Mike: Теперь я не беспокоюсь о didselectedrowatindex, потому что я не использую этот делегат. Если я что-то редактирую в текстовом поле и поле комментариев, я где-то сохраняю данные и создаю набор данных. Допустим, это для одной строки и аналогично для остальных 14 строк и соответствующих 14 наборов данных. теперь все эти 15 наборов данных мне нужно передать моему прокси-объекту, который будет сериализован в xml, и я передам этот XML в SOAP, а служба позаботится об этом. Я надеюсь, что теперь это вам намного понятно.
4. @manoj — ваша тема «сопоставление набора данных с текстовым полем» — можете ли вы использовать атрибут тега UITextField? Может быть, вам нужна какая-нибудь функция хэширования для запуска вашего rowkey, чтобы получить уникальное целое число, которым вы затем можете пометить свое поле.
5. @Mike: ну, хорошо, это единственное, что я знаю, как решить, как вы упомянули о теге. Но не могли бы вы предложить какой-либо подход, чтобы мой класс был достаточно интеллектуальным, как только я что-то изменю в текстовых полях, он создаст для меня набор данных и сохранит его для дальнейшего использования, пока я не нажму кнопку сохранения для отправки в удаленную службу.