无法从 Cocoapod Xcode 7.2.1 Swift 2.2 解析标识符

Cannot resolve identifier from Cocoapod Xcode 7.2.1 Swift 2.2

我一直在关注 this tutorial religiously,它已针对 Swift 2.0 和 Xcode 7.1 进行了验证(根据我使用的标题 Xcode 7.2.1 Swift 2.2),所以我卡在文章 "Using Your New CocoaPod" 上,你已经实现了它。我严格按照它进行操作,我的应用委托如下所示:

import UIKit
import RWPickFlavor

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  var window: UIWindow?
  var rootViewController: UIViewController!

  func application(application: UIApplication, didFinishLaunchingWithOptions
    launchOptions: [NSObject : AnyObject]?) -> Bool {

      setupRootViewController()

      window = UIWindow(frame: UIScreen.mainScreen().bounds)
      window?.rootViewController = rootViewController
      window?.makeKeyAndVisible()

      return true
  }

  func setupRootViewController() {
    let bundle = NSBundle(forClass: PickFlavorViewController.self)
    let storyboard = UIStoryboard(name: "Main", bundle: bundle)
    rootViewController = storyboard.instantiateInitialViewController()!
  }
}

但我在以下行有错误:

let bundle = NSBundle(forClass: PickFlavorViewController.self)

错误信息如下:"Use of unresolved identifier 'PickFlavorViewController'"

在 swift 2.0 和 2.2 之间是否发生了影响 CocoaPods 的事情,我该如何解决?

您似乎没有将 PickFlavorViewController 复制到您的项目中,您的教程中提到了这一点:

现在将 IceCreamShop.xcworkspace 中上述组中的所有内容(AppDelegate.swift 和 LaunchScreen.xib 除外)拖放到 RWPickFlavor.xcworkspace 中的相应组中像这样:

复制控制器,一切正常。祝你好运!

CocoaPods 初学者制作指南

我在这里遇到的问题是,尽管当场按照教程进行操作,但当我将文件复制过来时,它们被移到了我的 Swift [=49= 的根文件夹中] 我的文件系统中的 pod 项目文件夹 。这就是为什么我收到错误消息说找不到我的 class。

注意!

仅仅因为您在 xcode 项目中创建了一个组,并不意味着 Xcode 会创建任何类型的文件夹架构。

Xcode 的项目结构是一个基于指针的系统,它指向一个文件,无论它在您计算机文件系统中的什么位置。在 Xcode 中移动它不会在文件夹中移动它!

在我的例子中,文件被复制到根文件夹中,默认情况下 pod 会查看位于根文件夹中的名为您的项目的文件夹,但它看不到根文件夹中的内容,因此看不到使用 pod 时查找文件。


我该如何解决?

在您的 pod 项目的根文件夹 (您可以在其中找到 RWPickFlavor.xcworkspace 的文件夹中,您有一个与您的项目同名的文件夹。 将所有 swift 文件移至该文件夹。

更新您的广告连播以适应您的更改:

git add .
git commit -m 'Refactored the files (Or whichever commit message you want here)'
git tag 0.2.0
git push origin master --tags
pod repo push RWPodSpec RWPickFlavor.podspec

然后在您的 Ice Cream Shop 项目根目录中 (再一次,您可以在其中找到 [ProjectName].xcworkspace 运行 一个包含更新后的 pod 的 pod 安装。

其中一些 pod 步骤可能是不必要的,但这是我为解决问题所做的。