Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Модель приложения

Здравствуйте. Помогите с построением правильной модели приложения, т.е. сколько классов нужно сделать и что куда разбросать. У меня приложение делает запрос нбольша сайт, получает json, распарсивает его, паралельно все данные сохраняются в coreData. Картинки (ие, для detailView) скачиваются в фоновом потоке и сохраняются в папку documents на устройстве, для работы с сетью и загрузки картинок использую nsurlsession.
Приложение я написал и оно работает, но у меня все в одном классе и парсинг и корДата. Я понимаю что это неправильно, все в одном классе делать, но с много-классовостью у меня проблемы, пока что сложно понять что от чего должно наследоваться и что выносить в отдельный класс, а что можно объединить?
Ответ: этот один класс что есть сейчас UIViewController ?
теперь создай класс модели и перенеси в него методы загрузки данных, парсинга, сохранения на диск и чтения
в класс контроллера добавь свойство model
в конструкторе контроллера создавай объект модели

в контроллере должны быть доступны только основные методы модели: например метод получения данных
item = [self.model getItem];
а уже внутри модели должна бытиь проверка наличия данных в кеше, если нету то скачивание парсинг и сохранение
Вопрос: Размеры экранов фруктовых девайсов

Что нужно для того, чтобы одно приложение(игра) с заданными размерами фоновой картинки одинаково хорошо запускались на айфоне 4, 5, 6 ну и на айпаде? чтобы например скачав приложение с аппстора оно запустилось на любом айфоне чтобы пользователь не обламался. Спасибо)
Ответ: Jabbson, zulkis Спасибо!
Вопрос: IPhone 5 при выключенном состоянии и вставленном в него шнуре не работает

Такая проблема, разрядился полностью айфон, вставляю шнур, он никак не реагирует, что бы не нажимал, но в DFU режим переводится, попробовал перепрошить, он извлек ПО, потом на стадии выключения с DFU режима, он выключается и снова никак не работает, следовательно компьютер его не видит. Теперь он висит на шнурке. В чем может быть проблема?
Ответ: возможно в акб. несколько раз встречалось, что полностью разряжённый акб может показывать зарядку не сразу, а через некоторое время, иногда до нескольких часов...
Вопрос: Создание приложения и устройства к нему

Здравствуйте, уважаемые форумчане. У меня есть один вопрос, который может показаться вам смешным, но вы строго не судите, так как я абсолютный ноль в программировании. Каждому свое как говориться..

Вопрос такой: возникла идея создания приложения и устройства под это приложение. Суть в том, что есть заданная область от айфона до этого устройства(назовем его чип), допустим 10 метров радиусом, в котором чип находится в спокойном состоянии, но если этот чип выйдет за пределы этой зоны, то на айфон владельца поступает предупреждающий сигнал, в котором ему предлагается два варианта: "да, я знаю, что чип вышел из зоны"-и тогда чип переходит в режим сна и "нет, я к этому не причастен"(ну ответы условно написал)) и тогда открывается карта местности на которой видно текущее местоположение чипа. Плюс возможно ли еще сделать так, чтобы при открытии приложения и выбора определенной функции чип издавал звук? В мыслях еще много функций..но в принципе возможно ли наладить такую связь?

Если кто-то заинтересуется данной темой и захочет узнать где конкретно возможно применение этой технологии( но только серьёзно заинтересовавшиеся люди) можем обговорить по скайпу.

Заранее спасибо за ваше внимание и ответы!
Ответ:
Если есть возможность писать в базу на сервер, то можно использовать либу firebase для ios. Ее преимущество в том, что читать базу с сервера на телефоне не нужно, так как либа делает это сама и вызывает калбэки в ваше приложение. то есть чип пишет, а приложение получает калбэки, то есть довольно шустрый реалтайм. 


Можно сделать немного по другому, как в играх. Устанавливаете сокет соединение с сервером и чипом, и через сервер отправляете пакеты данных прямо на телефон. То есть база на серваке не требуется, сервер выступает только в роли передающего
Вопрос: Муки выбора: core data или работа "напрямую" с sqlite

Здравствуйте! Я новичок в разработке под osx и ios, но так как база на сях и плюсах была (когда-то давно), то идет это дело у меня довольно быстро. И пару дней назад передо мной встал следующий вопрос:

Ситуация: на iOS устройстве (пусть это будет фронтенд) требуется хранить (и периодически обновлять без обновления самого приложения) с сервера достаточно большое количество данных (тексты, картинки, некоторые служебные данные). На бэкенде (сервере) это все представлено обычной MySql базой данных с большим количеством таблиц и связей, и встала задача представить то же самое на iOS устройстве. При этом требуется сделать так, чтобы программа на устройство устанавливалась уже с начальным набором данных и дальше, по желанию пользователя, обновлялась с сервера. Основной режим работы приложения - оффлайн. Важно, что пользователь сам данные менять не может, т.е. все таблицы readonly и это, вроде бы, позволяет снять вопросы целостности связей, но мне непривычен такой подход.

Вопрос: что лучше использовать для хранения данных на устройстве, core data или прямую работу с SQLite базой? Прочитав несколько статей (в т.ч. большой кусок core data programming guide) я понял, что не могу принять решение по следующим причинам:
1: я привык работать с "нормальными" базами, где есть ключи, связи, индексы, уникальные значения итд и "нормальными" запросами к бд. В core data я половину из этого не нашел;
2: у самих apple написано "Core Data is not a relational database..." со всеми вытекающими. Насколько "надежно" доверять такой системе, если надо хранить не просто master-detail список покупок с соответствующим представлением в бд? Тут еще раз всплывает вопрос о том, что все таблицы readonly и, по идее, можно вообще наплевать на связи и положиться на логику сервера (что там все таблицы правильные и при обновлениях ничего не "перекосит").
3: процесс начального заполнения до конца неясен (программа должна устанавливаться с изначальным набором данных): сам механизм core data не позволяет подключить созданную и заполненную заранее базу SQLite. Как я понял, выходом тут является создать OSX приложение с core data, создать там пустую модель, заполнить ее данными и закинуть в iOS проект. Но тут мне вообще пока неясно, как совместить структуру на сервере (где есть ссылочная целостность, уники и тд, уже писал выше) и полученный SQLite файл со структурой, которую core data посчитает нужной (конечно, на основе моей схемы, но тем не менее).

На данный момент мне, конечно же, проще будет работать напрямую с SQLite (несмотря на то, что Apple обещает снижение количества кода на 50-70% при использовании КД), но, так как в принципе эта сфера мне нова, мне не хочется беспричинно пользоваться нерекомендуемыми (устаревшими?) технологиями. Поэтому прошу совета опытных в этой сфере людей.

И еще общий вопрос: на одном буржуйском форуме я запомнил фразу, что CoreData для OSX существенно отличается (по логике, не по коду) от CoreData для IOS, но дальнейшего развития эта фраза не получила. Объясните, пожалуйста, что имелось ввиду.
Ответ: Вчера обновились требования к программе, и, видимо, прийдется отказаться от Core Data в пользу SQLite: хоть я и всячески пытался избежать возникновения такой ситуации, но выбора нет: в процессе работы требуется изменять структуру бд (добавлять новые таблицы и связи) без обновления самой программы, чего, как я понял, Core Data не умеет. Значит, буду использовать fmdb, еще раз спасибо за статью и ресурс!
Вопрос: Два segue, Два viewController, Одно отображение

Добрый день! Изучаю работу c segue - и столкнулся с проблемой.

Какая стоит передо мной задача. Есть два класса (viewController), один наследуется от другого.
Отображение для них общее.

Мне нужно с главного отображения переходить на следующее отображение, но в зависимости от кнопки, выбирать для этого отображения конкретный класс

Если делать без storyboard - то все просто. Я создаю нужный мне viewController (initWithXibName) указывая свое отображение.

Здесь же я создал 2 segue - оба получается от соответствующих кнопок. Обе ведут на второе отображение. Но ведь в IB класс указан в настройках.

Я использую функцию prepareForSegue, но не пойму как изменить класс для этого отображения.

Это возможно? Хотелось бы использовать одно отображение, чтобы не плодить второе отображение (потому что просто два режима, просмотр записи, и добавление записи) - но хотелось бы два контроллера.

Спасибо!
Ответ: я утрировал) просто не понял Ваш вопрос, о том, зачем нужен еще один уровень наследования.

На самом деле, я изучаю(вспоминаю) objective-c пользуясь книгами (одна из них Head First) - ну так вот там был еще ios5. Я пытаюсь реализовать примеры из книги, но исползуя новые возможности, в данном случае SEGUE.

В книге используется простой прием. initWithXibName. Который позволяет загрузить любой VC с любым отображением. Здесь же так не получается - поэтому у меня появился этот вопрос)

Понятно, что есть другие пути решения, но хочется именно вникнуть, как все работает - и сделать так же как в книге, но другими методами