2017-02-17 2 views
0

Мне было интересно, является ли это лучшей практикой, и если это вызовет проблемы с моим быстрым приложением IOS, обратите внимание, что это мой первый раз, и я в основном имею фон для веб-приложений.Использование Appdelegate для создания методов для Firebase CRUD в IOS Swift для всех контроллеров view

Я заметил, что выполняю задачи CRUD для различных функций (беседуя, сопоставляя пользователей, отображая информацию о пользователях и пользователях facebook) и используя Firebase, так как мне легко хранить данные в реальном времени и что для каждого ViewControllers у меня есть несколько схожие функции, вытягивающие или обновляющие данные Firebase, но с разными данными.

Я также заметил, что я могу использовать функции, ранее объявленные в файле AppDelegate.swift, через класс UIApplication.

Мой вопрос заключается в следующем: могу ли я заранее объявить функции с использованием заводского шаблона (т. Е. Если захватить эти данные, иначе, если захватить другие данные на основе ввода) в AppDelegate.swift, а затем вызвать эти методы в моем другие ViewControllers?

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

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

+0

Вы должны создать отдельную систему для обработки сетевых запросов. Определенно не добавляйте AppDelegate. Ознакомьтесь с настройками Alamofire Router или Moya для некоторых хороших примеров. Может потребоваться немного больше времени, чтобы настроить, но сделает ваш код намного более чистым. – JustinM

+0

Что-то вроде этого: https://github.com/Alamofire/Alamofire#crud--authorization? Также Моя более предпочтительна? У этого есть слой Alamofire от того, что это выглядит как – mding5692

+0

Это действительно предпочтение с Вашей стороны Я только что перечислил их как некоторые примеры, чтобы проверить. Вы также можете просто создать класс для хранения своих сетевых функций, и если вы хотите сделать его одиночным. Есть много вещей, которые вы можете проверить в этой теме, но, по крайней мере, у вас должен быть отдельный класс для хранения вашего сетевого кода таким образом, что все это в одном месте, и вы не переписываете один и тот же код в нескольких контроллерах представлений. Мойя использует alamofire, чтобы сделать запрос, и что он делает, организует, как вы настраиваете запросы до их создания. Это немного более продвинутый, хотя – JustinM

ответ

0

Благодаря JustinM (см. Выше комментарии) я использовал https://github.com/Moya/Moya для создания слоя FirebaseDB.swift, который служит как один слой для запроса и хранения пользовательских данных и т. Д. В Firebase. Не нужно было прибегать к использованию AppDelegate.swift

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