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

时间:2016-04-12 05:17:37

标签: ios swift xcode7 cocoapods

我一直关注this tutorial religiously已经验证了Swift 2.0和Xcode 7.1 (根据标题我正在使用Xcode 7.2.1 Swift 2.2),所以我卡住了在你实现它的文章“使用你的新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)

错误消息显示:“使用未解析的标识符'PickFlavorViewController'”

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

2 个答案:

答案 0 :(得分:2)

看起来你没有将PickFlavorViewController复制到你的项目中,这在你的教程中提到:

现在将所有内容 - 除了AppDelegate.swift和LaunchScreen.xib - 从IceCreamShop.xcworkspace中的上述组拖放到RWPickFlavor.xcworkspace中的相应组中,如下所示:

复制控制器,一切都应该没问题。祝你好运!

答案 1 :(得分:1)

制作CocoaPods的初学者指南

我在这里遇到的问题,尽管按照教程到现场,当我复制文件时,它们被移动到我的文件系统中的Swift cocoa pod项目文件夹的根文件夹。这就是为什么我发错的信息,我的课程无法找到。

注意!

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

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

在我的情况下,文件被复制到根文件夹中,默认情况下是pod,查看名为你的项目的文件夹,它位于根文件夹中,但它不知道&#39 ; s在您的根目录中,因此在使用pod时找不到文件。


如何解决?

在您的根文件夹(您可以在其中找到RWPickFlavor.xcworkspace的pod项目中,您有一个与项目同名的文件夹。 将所有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

在您的冰淇淋店项目根目录(再一次,您发现[ProjectName].xcworkspace的地方,使用更新后的广告连播运行pod安装。

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