Ios PHP和MySQL专家感觉像是swift中的傀儡

Ios PHP和MySQL专家感觉像是swift中的傀儡,ios,swift,xcode,core-data,Ios,Swift,Xcode,Core Data,我是一个热情的非专业程序员,我可以说我是php和MySQL方面的专家——我能够用php编写一个具有iOS应用程序外观和感觉的整个web应用程序,但是。。。。它仍然是一个网络应用程序 在过去的几年中,我多次开始使用swift和Xcode。但是,因为它给我的感觉是如此的不同,感觉就像在Xcode中处理代码时经常会发生Swifft更改(例如SwiftUI),所以每次我都会停下来 我心中有一个非常酷的应用程序,但我对下一个php web应用程序项目感到厌倦,我真的很想在iOS中实现它。因此,我直接对数据

我是一个热情的非专业程序员,我可以说我是php和MySQL方面的专家——我能够用php编写一个具有iOS应用程序外观和感觉的整个web应用程序,但是。。。。它仍然是一个网络应用程序

在过去的几年中,我多次开始使用swift和Xcode。但是,因为它给我的感觉是如此的不同,感觉就像在Xcode中处理代码时经常会发生Swifft更改(例如SwiftUI),所以每次我都会停下来

我心中有一个非常酷的应用程序,但我对下一个php web应用程序项目感到厌倦,我真的很想在iOS中实现它。因此,我直接对数据的存储方式感到困惑

使用我的技能,我可以创建一个PHPAPI和一个MySQL数据库,并使用http请求。很公平

但是如果用户没有互联网连接怎么办?我想有两个数据库——一个在设备上,一个在互联网上。我已经用核心数据和swift ui做了一个待办事项列表教程

有话要说:

当应用程序启动时,应该有一个包含帐户的listview。每个帐户都有一个唯一的id,用户可以在共享唯一id时添加帐户。这样,多个用户就可以访问同一数据项。一个用户创建帐户和随机唯一id,另一个用户可以将帐户项目添加到他的应用程序中

每个帐户都有一个与该帐户相关的多个用户的列表,每个帐户都有一个可以由每个用户创建的事务列表

此外,我可以决定我是哪个用户。在php中,我使用一个带有用户列表的下拉列表,并将选择的值存储在会话中

如果有助于理解,我将添加我的数据库结构:

CREATE TABLE `pay_accounts` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `share_id` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `currency` (`currency`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `pay_transaction_users` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `user` int(11) unsigned DEFAULT NULL,
  `amount` float DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `user` (`user`),
  CONSTRAINT `pay_transaction_users_ibfk_1` FOREIGN KEY (`user`) REFERENCES `pay_users` (`id`) ON DELETE SET NULL ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `pay_transactions` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `date` timestamp NULL DEFAULT NULL,
  `payer` int(11) unsigned DEFAULT NULL,
  `amount` float DEFAULT NULL,
  `purpose` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `payer` (`payer`),
  CONSTRAINT `pay_transactions_ibfk_1` FOREIGN KEY (`payer`) REFERENCES     `pay_users` (`id`) ON DELETE SET NULL ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;---------------

CREATE TABLE `pay_users` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `account` int(11) unsigned DEFAULT NULL,
  `mail` varchar(255) DEFAULT NULL,
  `activity` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `account` (`account`),
  CONSTRAINT `pay_users_ibfk_1` FOREIGN KEY (`account`) REFERENCES `pay_accounts` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
我直接感到困惑的是:在php中,现在很容易用HTML创建一个from并将数据添加到MySQL。。。在Swift中,我完全不知道如何实现那个项目

在php中,现在很容易使用HTML创建一个源并添加数据 到MySQL。。。在斯威夫特,我完全不知道如何认识到这一点 项目

您如何在HTML/PHP中实现这一点?基本上,您可以用HTML创建一个表单,然后在提交时通过
POST/GET
将数据发送到后端,PHP处理数据库连接

你也可以在你的iOS应用程序中使用同样的方法。在iOS中,您可以使用不同的HTTP请求类型轻松进行HTTP请求。检查螺纹。因此,您通常需要先进行身份验证,即从应用程序向后端发送凭据以验证用户

来自后端的数据可以以JSON/XML格式发送。你可以很容易地用Swift/Objective C解析它,在应用程序中创建对象并显示数据。如果您想在本地存储该数据,您可以这样做。这确实是一种好方法(离线/缓存)。你必须决定你的应用程序是否也应该离线运行。两者皆有可能

数据可以本地存储在数据库中,或者甚至可以使用CoreData framework,这非常简单。如果获取新数据,请将其与现有数据合并并同时显示

我有一个小图片给你看,但是你的方法已经很好了。我构建了一个“Instagram”iOS克隆,后端是PHP。它很好用


您可以在iOS中使用CoreData,这可能非常适合您,但如果您想存储简单的内容,您可以将对象存储到磁盘,并在需要时读取它们。您的问题是什么?如何在Swift中创建表视图?如何从http请求进行联网和解析数据?如何维护本地数据库?如何添加文本字段或提交按钮?所有这些问题都有简洁的解决方案。我建议从一个基本的教程开始,做一些与你的应用程序想法类似的事情,然后再回来提出更具体的问题。以下是有关如何创建应用程序以查看和操作表视图中的数据的教程: