如何在我的iOS应用程序中使用SwiftyJSON?

and*_*yen 10 xcode ios swift swifty-json carthage

我最近使用Carthage将SwiftyJSON添加到我的xCode项目中.

Cartfile

$ cat Cartfile
github "SwiftyJSON/SwiftyJSON" >= 2.1.2
Run Code Online (Sandbox Code Playgroud)

我运行此命令来安装SwiftyJSON

$ carthage update
Run Code Online (Sandbox Code Playgroud)

我将构建的Framework添加到我的xCode项目中

在此输入图像描述

我在项目的顶部导入了Framework

在此输入图像描述

但我仍然得到这个错误:

Use of unresolved identifier 'JSON'
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

说真的,我做错了什么?我是iOS开发的新手.

更新:我尝试删除框架并将框架重新拖动到链接的框架和库,并按照迦太基的说明将"运行脚本"部分添加到"构建阶段".

在此输入图像描述

我确信在此Carthage Update过程中出现了问题,因为我在初次尝试时收到了这个错误:

$ carthage update
*** Fetching SwiftyJSON
*** Fetching Alamofire
*** Checking out SwiftyJSON at "2.1.3"
*** Checking out Alamofire at "1.1.4"
*** xcodebuild output can be found in /var/folders/0x/swzt630n3_575tglljpwhn4h0000gn/T/carthage-xcodebuild.Pc6rLg.log
*** Building scheme "Alamofire iOS" in Alamofire.xcworkspace
*** Building scheme "Alamofire OSX" in Alamofire.xcworkspace
*** Building scheme "SwiftyJSON" in SwiftyJSON.xcworkspace
** BUILD FAILED **


The following build commands failed:
    Check dependencies
(1 failure)
Run Code Online (Sandbox Code Playgroud)

在查找问题后,我被告知你可以跑了

carthage update --configuration Debug
Run Code Online (Sandbox Code Playgroud)

安装得很好,但仍然有些不妥...

aks*_*h1t 2

看来您在添加SwiftyJSONAlamofire框架的过程中错过了一个步骤Carthage。从自述文件页面查看以下步骤Carthage

\n\n

脚步 :

\n\n
    \n
  • 创建一个 Cartfile,其中列出您\xe2\x80\x99d 喜欢在项目中使用的框架。
  • \n
  • 运行迦太基更新。这会将依赖项提取到 Carthage/Checkouts 文件夹中,然后构建每个依赖项。
  • \n
  • 在应用程序目标\xe2\x80\x99\xe2\x80\x9cGeneral\xe2\x80\x9d 设置选项卡上的 \xe2\x80\x9cLinked Frameworks and Libraries\xe2\x80\x9d 部分中,拖放您要使用的每个框架想要从磁盘上的 Carthage/Build 文件夹中使用。
  • \n
  • 在应用程序目标 \xe2\x80\x99 \xe2\x80\x9cBuild Phases\xe2\x80\x9d 设置选项卡上,单击 \xe2\x80\x9c+\xe2\x80\x9d 图标并选择 \xe2\x80\x9cNew Run脚本阶段\xe2\x80\x9d。创建一个包含以下内容的运行脚本:

    \n\n
    /usr/local/bin/carthage copy-frameworks\n
    Run Code Online (Sandbox Code Playgroud)\n\n

    并在 \xe2\x80\x9cInput Files\xe2\x80\x9d 下添加要使用的框架的路径,例如:

    \n\n
    $(SRCROOT)/Carthage/Build/iOS/Alamofire.framework\n$(SRCROOT)/Carthage/Build/iOS/SwiftyJSON.framework\n
    Run Code Online (Sandbox Code Playgroud)
  • \n
\n\n
\n\n

看起来您错过了第 4 步。我自己在演示 Swift 项目中尝试了这些步骤,并且效果很好。尝试这些步骤,如果仍然有问题,请发表评论。谢谢!

\n