Quickstarters
CRUD Samples
如何用Objective-C在iOS上构建CRUD应用?
25 分
概述 在本教程中,您将发现如何使用 objective c 为 ios 创建一个简单的 crud(创建、读取、更新、删除)应用程序。 我们将利用 back4app 作为后端来管理您的数据,确保后端与您的 ios 应用程序的顺利集成。本指南涵盖了从设置 back4app 项目到使用 parse ios sdk 实现基本 crud 操作的所有内容。 最初,您将设置一个名为 basic crud app ios 的 back4app 项目。该项目将作为您的数据存储库,并允许您设计一个灵活的数据模型,包含 items 和 users 等类。您可以在 back4app 仪表板中手动定义这些类,或利用集成的 ai agent 来简化该过程。 在配置好后端后,您将其与您的 objective c ios 应用程序集成。教程包括初始化 parse sdk、执行 crud 操作和实现安全用户身份验证的代码示例。 在本教程结束时,您将构建一个生产就绪的 ios 应用程序,该应用程序执行基本的 crud 功能,并具有安全的用户管理。 关键概念 学习如何使用 objective c 开发一个具有强大后端的 ios crud 应用程序。 了解如何使用 back4app 设计和集成可扩展的后端。 利用 back4app 的管理应用程序进行高效的数据管理。 使用 acl 和用户身份验证通过 parse ios sdk 实现安全的数据处理。 先决条件 在开始之前,请确保您拥有: 一个具有活动项目的 back4app 账户。 需要帮助?请参考 back4app 入门指南 https //www back4app com/docs/get started/new parse app 。 安装了配置好的 ios 开发环境的 xcode。 本教程假设您对 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\ 项目类别 该类别存储有关每个项目的详细信息。 字段 数据类型 目的 id 对象id 自动生成的唯一标识符。 标题 字符串 项目名称。 描述 字符串 该项目的简要总结。 创建于 日期 项目创建时的时间戳。 更新时间 日期 最后更新的时间戳。 2\ 用户类 该类管理用户凭据和身份验证。 字段 数据类型 目的 id 对象id 自动生成的标识符。 用户名 字符串 用户的唯一用户名。 电子邮件 字符串 用户的唯一电子邮件地址。 密码哈希 字符串 安全存储的用户密码。 创建于 日期 账户创建时间戳。 更新时间 日期 最后修改时间戳。 您可以通过 back4app 控制面板设置这些类。 创建新课程 您通过选择数据类型、命名字段、分配默认值和标记必填字段来添加字段。 创建列 使用 back4app ai 代理进行模式设计 集成的 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 – 启用管理员应用程序和管理数据 管理员应用程序概述 back4app的管理应用程序提供了一个用户友好的无代码界面,用于管理您的后端数据。其拖放功能使您能够轻松创建、查看、修改和删除记录。 激活管理应用程序 前往“更多”菜单 在您的back4app仪表板中。 选择“管理应用程序” 然后点击 “启用管理应用程序。” 建立您的管理员账户 通过设置初始凭据,这也配置了系统角色,如 b4aadminuser 。 启用管理应用程序 激活后,登录管理应用程序以高效管理您的数据。 管理应用程序仪表板 通过管理应用程序管理crud操作 在管理应用程序中,您可以: 添加记录: 在一个类(例如,项目)中点击“添加记录”以插入新数据。 编辑记录: 选择任何记录以查看或更新其字段。 删除记录: 删除不再需要的条目。 这个简化的界面显著简化了数据管理任务。 步骤 4 – 将您的 ios 应用程序与 back4app 连接 在后端设置完成后,下一步是使用 parse ios sdk 将您的 ios 应用程序与 back4app 集成。 选项 a:在 objective c 中使用 parse ios sdk 包含 parse sdk: 将 parse 框架添加到您的 xcode 项目中。您可以通过在您的 podfile }]} pod 'parse' 在您的 appdelegate 中初始化 parse 打开您的 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; } 在 objective c 中实现 crud 方法: 创建一个服务类,例如, 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,可以通过 restful api 调用与 back4app 进行交互。例如,通过 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 – 保护您的后端 配置访问控制列表 (acls) 为了保护您的数据,请为您的对象配置 acls。例如,要创建一个仅对其所有者可见的项目: \#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); } }]; } 设置类级权限 (clps) 使用 back4app 仪表板调整 clps,确保只有经过身份验证的用户可以默认访问某些类。 步骤 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步 – 结论与未来方向 恭喜你!你已经成功构建了一个使用objective c的ios crud应用程序,并与back4app完全集成。 在本指南中,你设置了一个名为 basic crud app ios 的项目,设计了items和users的核心类,并使用admin app管理你的后端。 此外,你还使用parse ios sdk连接了你的应用,实施了crud操作,并通过acl保护了你的数据。 下一步: 扩展应用程序: 加入更多功能,如高级搜索、详细项目视图或实时更新。 增强后端能力: 探索云功能,集成第三方api,或优化基于角色的访问控制。 深化你的专业知识: 访问 back4app文档 https //www back4app com/docs 以获取更多见解和教程。 祝你编码愉快,祝你的ios crud项目好运!