如何将json数据添加到我的xcode项目中



我正在尝试制作一个简单的Pokedex,它允许用户使用Swift在英语和日语之间切换pokemon的名称。我在互联网上找到了这个来源,pokedex.json文件中有英文和日文的口袋妖怪名称,images文件夹中有口袋妖怪图像,所以我计划使用这个来源,但问题是我不知道如何无端点访问数据。

通常,我使用swiftyJOSN和Alamofire向API发出请求并解析JSON数据,但源没有API端点。这就是为什么我对如何在没有任何GET请求的情况下访问数据感到困惑。

我想不知何故,我需要将pokedex.json和其他图像文件放入我的代码项目中,并使我的代码可以访问数据(对不起,我不确定(。所以,如果我是正确的,有人能告诉我如何将文件导入到我的项目中吗?另一方面,如果我试图做一些完全错误的事情,有人能告诉我吗?

此外,我想知道如何使用Swift访问JSON文件中的数据。

是的,您可以将文件作为应用程序捆绑包中的资源发送。以下是您的操作方法:

  1. 在Xcode中,在项目中创建一个组,并为其提供一个描述性名称,例如";资源">
  2. 从源代码下载pokedex.json文件
  3. 将此pokedex.json文件拖放到Finder到Xcode的组中。当出现文件添加对话框时,一定要选中";如果需要,复制项目";复选框,并且您的主要目标已被选中
  4. 在代码中,您读取的资源如下:
guard let pokedexFilePath = Bundle.main.path(forResource: "pokedex", ofType: "json"),
let pokedexData = FileManager.default.contents(atPath: pokedexFilePath) else
{
// TODO: handle error appropriately
return
}
// Now you can parse pokedexData with SwiftyJSON, Codable or whatever you prefer.

然而,如果你需要在应用程序中发送图像文件,你可能会发现使用资产目录(Xcode项目中的蓝色Assets.xassets文件夹(比使用我上面描述的方法更方便。在资产目录中,您可以为不同的屏幕或界面主题指定同一图像的不同版本,如果需要,甚至可以为同一图像指定本地化版本。使用资产目录时,只需调用UIImage(named: "your_image_name_in_the_catalog")就可以在代码中创建图像。

最新更新