无法从 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 步骤可能是不必要的,但这是我为解决问题所做的。
我一直在关注 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 步骤可能是不必要的,但这是我为解决问题所做的。