Quickstarters
CRUD Samples
Как создать CRUD приложение на iOS с Objective-C?
27 мин
обзор в этом руководстве вы узнаете, как создать простое crud (создание, чтение, обновление, удаление) приложение для ios с использованием objective c мы будем использовать back4app в качестве бэкенда для управления вашими данными, обеспечивая плавную интеграцию бэкенда с вашим ios приложением этот гид охватывает все, от настройки проекта back4app до реализации основных операций crud с использованием parse ios sdk сначала вы создадите проект back4app под названием basic crud app ios этот проект будет служить вашим репозиторием данных и позволит вам разработать гибкую модель данных с классами, такими как items и users вы можете определить эти классы вручную в панели управления back4app или воспользоваться встроенным ai agent для упрощения процесса после настройки вашего бэкенда вы интегрируете его с вашим приложением на objective c для ios учебник включает примеры кода для инициализации parse sdk, выполнения операций crud и реализации безопасной аутентификации пользователей к концу этого учебника вы создадите готовое к производству ios приложение, которое выполняет основные функции crud вместе с безопасным управлением пользователями ключевые концепции узнайте, как разработать приложение ios crud с использованием objective c и надежным бэкендом поймите, как спроектировать и интегрировать масштабируемый бэкенд с использованием back4app используйте приложение администратора back4app для эффективного управления данными реализуйте безопасную обработку данных с помощью acl и аутентификации пользователей с использованием parse ios sdk предварительные требования перед началом убедитесь, что у вас есть аккаунт back4app с активным проектом нужна помощь? обратитесь к начало работы с back4app https //www back4app com/docs/get started/new parse app установленный xcode с настроенной средой разработки ios этот учебник предполагает знакомство с objective c и разработкой для ios базовое понимание объектно ориентированного программирования и rest api обновите свои знания о документации по objective c https //developer apple com/library/archive/documentation/cocoa/conceptual/programmingwithobjectivec/introduction/introduction html при необходимости шаг 1 – инициализация проекта создание вашего проекта back4app войдите в свою учетную запись back4app нажмите кнопку “новое приложение” на вашей панели управления назовите ваш проект basic crud app ios и следуйте инструкциям на экране, чтобы завершить настройку создать новый проект после создания ваш проект появится на панели управления, служа основой для управления данными вашего приложения шаг 2 – создание модели данных настройка ваших структур данных для этого ios crud приложения вам нужно определить ключевые классы в вашем проекте back4app ниже приведены основные классы и их поля 1\ класс предметов этот класс хранит детали о каждом предмете поле тип данных цель ид идентификатор объекта автоматически сгенерированный уникальный идентификатор название строка название элемента описание строка краткое резюме предмета создано дата время создания элемента обновлено дата метка времени для последнего обновления 2\ класс пользователей этот класс управляет учетными данными пользователей и аутентификацией поле тип данных цель ид идентификатор объекта автоматически сгенерированный идентификатор имя пользователя строка уникальное имя пользователя для пользователя электронная почта строка уникальный адрес электронной почты пользователя хешпароля строка надежно сохраненный пароль пользователя создано дата время создания аккаунта обновлено дата время последнего изменения вы можете настроить эти классы через панель управления back4app создать новый класс вы добавляете поля, выбирая тип данных, называя поле, назначая значения по умолчанию и отмечая обязательные поля создать колонку использование ai агента back4app для проектирования схемы интегрированный ai агент может автоматически создать вашу схему данных на основе вашего описания эта функция упрощает процесс настройки и гарантирует, что ваша модель данных соответствует требованиям приложения как использовать ai агента получите доступ к ai агенту откройте свою панель управления back4app и перейдите к ai агенту в настройках вашего проекта подробно опишите свою модель данных введите подсказку, описывающую необходимые классы и поля просмотрите и подтвердите после того как ai сгенерирует предложение схемы, просмотрите его и подтвердите, чтобы применить изменения пример подсказки create the following classes in my back4app project 1\) class items \ fields \ id objectid (auto generated) \ title string \ description string \ createdat date (auto generated) \ updatedat date (auto updated) 2\) class users \ fields \ id objectid (auto generated) \ username string (unique) \ email string (unique) \ passwordhash string \ createdat date (auto generated) \ updatedat date (auto updated) этот метод экономит время и обеспечивает согласованность в вашей структуре данных шаг 3 – включение админ приложения и управление данными обзор админ приложения приложение admin от back4app предоставляет удобный интерфейс без кода для управления вашими данными на сервере его функции перетаскивания позволяют легко создавать, просматривать, изменять и удалять записи активация приложения admin перейдите в меню “дополнительно” на вашей панели управления back4app выберите “admin app” и нажмите “включить admin app ” создайте свою учетную запись администратора , установив начальные учетные данные, что также настраивает системные роли, такие как b4aadminuser включить admin app после активации войдите в приложение admin, чтобы эффективно управлять вашими данными панель управления admin app управление операциями crud через приложение admin в приложении admin вы можете добавить записи нажмите “добавить запись” в классе (например, элементы), чтобы вставить новые данные редактировать записи выберите любую запись, чтобы просмотреть или обновить ее поля удалить записи удалите записи, которые больше не нужны этот упрощенный интерфейс значительно облегчает задачи управления данными шаг 4 – подключение вашего ios приложения к back4app после настройки бэкенда следующим шагом является интеграция вашего ios приложения с back4app с использованием parse ios sdk вариант a использование parse ios sdk на objective c включите parse sdk добавьте фреймворк parse в ваш проект xcode вы можете использовать cocoapods, добавив следующее в ваш podfile pod 'parse' инициализируйте parse в вашем appdelegate откройте ваш appdelegate m и добавьте код инициализации в методе application\ didfinishlaunchingwithoptions // appdelegate m \#import \<parse/parse h> \ (bool)application (uiapplication )application didfinishlaunchingwithoptions (nsdictionary )launchoptions { \[parse initializewithconfiguration \[parseclientconfiguration configurationwithblock ^(id\<parsemutableclientconfiguration> configuration) { configuration applicationid = @"your application id"; configuration clientkey = @"your ios key"; configuration server = @"https //parseapi back4app com"; }]]; return yes; } реализуйте методы crud на objective c создайте класс сервиса, например, itemsservice m , для обработки операций crud // itemsservice m \#import "itemsservice h" \#import \<parse/parse h> @implementation itemsservice \ (void)createitemwithtitle (nsstring )title description (nsstring )description { pfobject item = \[pfobject objectwithclassname @"items"]; item\[@"title"] = title; item\[@"description"] = description; \[item saveinbackgroundwithblock ^(bool succeeded, nserror error) { if (succeeded) { nslog(@"item created successfully "); } else { nslog(@"error creating item %@", error localizeddescription); } }]; } \ (void)fetchitemswithcompletion (void (^)(nsarray items, nserror error))completion { pfquery query = \[pfquery querywithclassname @"items"]; \[query findobjectsinbackgroundwithblock ^(nsarray objects, nserror error) { completion(objects, error); }]; } \ (void)updateitemwithobjectid (nsstring )objectid newtitle (nsstring )newtitle newdescription (nsstring )newdescription { pfquery query = \[pfquery querywithclassname @"items"]; \[query getobjectinbackgroundwithid\ objectid block ^(pfobject item, nserror error) { if (item) { item\[@"title"] = newtitle; item\[@"description"] = newdescription; \[item saveinbackgroundwithblock ^(bool succeeded, nserror error) { if (succeeded) { nslog(@"item updated successfully "); } else { nslog(@"error updating item %@", error localizeddescription); } }]; } else { nslog(@"error fetching item %@", error localizeddescription); } }]; } \ (void)deleteitemwithobjectid (nsstring )objectid { pfquery query = \[pfquery querywithclassname @"items"]; \[query getobjectinbackgroundwithid\ objectid block ^(pfobject item, nserror error) { if (item) { \[item deleteinbackgroundwithblock ^(bool succeeded, nserror error) { if (succeeded) { nslog(@"item deleted successfully "); } else { nslog(@"error deleting item %@", error localizeddescription); } }]; } else { nslog(@"error fetching item %@", error localizeddescription); } }]; } @end вариант b использование rest или graphql если вы предпочитаете не использовать parse sdk, вы можете взаимодействовать с back4app через вызовы restful api например, чтобы получить элементы через rest \#import \<foundation/foundation h> @interface restclient nsobject \+ (void)fetchitems; @end @implementation restclient \+ (void)fetchitems { nsurl url = \[nsurl urlwithstring @"https //parseapi back4app com/classes/items"]; nsmutableurlrequest request = \[nsmutableurlrequest requestwithurl\ url]; \[request sethttpmethod @"get"]; \[request setvalue @"your application id" forhttpheaderfield @"x parse application id"]; \[request setvalue @"your rest api key" forhttpheaderfield @"x parse rest api key"]; nsurlsessiondatatask datatask = \[\[nsurlsession sharedsession] datataskwithrequest\ request completionhandler ^(nsdata data, nsurlresponse response, nserror error) { if (error) { nslog(@"error fetching items %@", error localizeddescription); } else { nsstring result = \[\[nsstring alloc] initwithdata\ data encoding\ nsutf8stringencoding]; nslog(@"response %@", result); } }]; \[datatask resume]; } @end выберите подход, который лучше всего соответствует потребностям вашего проекта шаг 5 – защита вашего бэкенда настройка списков контроля доступа (acl) чтобы защитить ваши данные, настройте acl для ваших объектов например, чтобы создать элемент, видимый только его владельцу \#import \<parse/parse h> \ (void)createprivateitemwithtitle (nsstring )title description (nsstring )description owner (pfuser )owner { pfobject item = \[pfobject objectwithclassname @"items"]; item\[@"title"] = title; item\[@"description"] = description; pfacl acl = \[pfacl aclwithuser\ owner]; \[acl setpublicreadaccess\ no]; \[acl setpublicwriteaccess\ no]; item acl = acl; \[item saveinbackgroundwithblock ^(bool succeeded, nserror error) { if (succeeded) { nslog(@"private item created "); } else { nslog(@"error saving item %@", error localizeddescription); } }]; } настройка разрешений на уровне класса (clp) используйте панель управления back4app для настройки clp, чтобы гарантировать, что только аутентифицированные пользователи могут получить доступ к определенным классам по умолчанию шаг 6 – реализация аутентификации пользователей управление учетными записями пользователей back4app использует родной класс пользователя parse для управления аутентификацией пользователей в вашем ios приложении вы можете реализовать регистрацию и вход следующим образом \#import \<parse/parse h> @interface authservice nsobject \+ (void)signupwithusername (nsstring )username password (nsstring )password email (nsstring )email; \+ (void)loginwithusername (nsstring )username password (nsstring )password; @end @implementation authservice \+ (void)signupwithusername (nsstring )username password (nsstring )password email (nsstring )email { pfuser user = \[pfuser user]; user username = username; user password = password; user email = email; \[user signupinbackgroundwithblock ^(bool succeeded, nserror error) { if (succeeded) { nslog(@"user successfully registered!"); } else { nslog(@"sign up error %@", error localizeddescription); } }]; } \+ (void)loginwithusername (nsstring )username password (nsstring )password { \[pfuser loginwithusernameinbackground\ username password\ password block ^(pfuser user, nserror error) { if (user) { nslog(@"user logged in %@", user username); } else { nslog(@"login failed %@", error localizeddescription); } }]; } @end этот подход также распространяется на управление сессиями, сброс паролей и дополнительные функции аутентификации шаг 7 – заключение и будущие направления поздравляем! вы успешно создали приложение ios crud с использованием objective c, полностью интегрированное с back4app на протяжении этого руководства вы настроили проект под названием basic crud app ios , разработали основные классы для элементов и пользователей и управляли своим бэкендом с помощью admin app кроме того, вы подключили свое приложение с помощью parse ios sdk, реализовали операции crud и защитили свои данные с помощью acl следующие шаги расширьте приложение включите дополнительные функции, такие как расширенный поиск, детальные представления элементов или обновления в реальном времени улучшите возможности бэкенда изучите облачные функции, интегрируйте сторонние api или уточните управление доступом на основе ролей углубите свои знания посетите документацию back4app https //www back4app com/docs для получения дополнительных сведений и учебных пособий счастливого кодирования и удачи с вашим проектом ios crud!