【问题标题】:Xcode won't recognize a new Swift classXcode 无法识别新的 Swift 类
【发布时间】:2015-05-09 23:51:46
【问题描述】:

我在一个新文件中创建了一个新的 Swift 类

import Foundation

class RecordedAudio: NSObject{
    var filePathUrl: NSURL!
    var title: String!
}

现在我想通过创建一个新对象在另一个类中使用它。

import UIKit
import AVFoundation

class recordSoundsViewController: UIViewController, AVAudioRecorderDelegate {
    var audioRecorder: AVAudioRecorder!
    var recordedAudio: RecordedAudio! // new object gives error

但是 Xcode 给了我错误“使用未声明的类型 RecordedAudio”,所以我被困在那里。类似的问题已在此处发布:How do I import a Swift file from another Swift file? 但这些解决方案都不适合我。顺便说一句,这是 Udacity swift 课程的一部分。谢谢,任何帮助将不胜感激。

【问题讨论】:

  • 有时,您所需要的只是很好地重新启动 Xcode。 ⌘-Q使用 Xcode,然后重新打开并查看问题是否仍然存在。
  • 对我来说,有时我必须重新启动它 4-5 次,相当麻烦
  • 感谢大家的回复,我确实重启了几次xcode,但没有成功。
  • 干净,CMD+k 为我工作

标签: ios swift


【解决方案1】:

在左侧的 Project Navigator 中,选择您声明 RecordedAudio 的文件。

现在,在右侧的文件检查器中,查看 Target Membership。应用目标(不是测试目标)应该被选中,类似于:

如果没有,请检查!现在一切都会好起来的。

【讨论】:

  • 谢谢马特,那行得通。在新课程中,我同时选中了 "target" 和 "test target" ,所以我取消选中了 "test target" 并只保留了 "target" 。成功了。
  • 对于未来的读者,如果已经选中,也可以尝试取消选中并再次选中目标。
【解决方案2】:

在我的情况下,我必须从项目导航器中删除引用,然后再次添加它们(目标成员不是问题)。

【讨论】:

    【解决方案3】:

    我只需要完成 Full Monty 就可以让它工作......

    1. 注释掉引用行
    2. 修复其他错误以确保构建
    3. Cmd+Shift+K(清理构建文件夹)
    4. 不...让我们删除构建文件夹:/Users/[YOU]/Library/Developer/Xcode/DerivedData/project-name-ADM2KD...
    5. 重启 Xcode
    6. 构建
    7. 取消注释我们的引用行

    还可以将@objc 添加到您的类定义上方的行中,并且可能将其设为public class 只是为了明确并且可能将public 添加到您的方法中。哦,确保你继承了NSObject

    如果您无法显示初始化程序,我也刚刚注意到 Swift 4.2 在这里有更多问题。我切换回 Swift 3。没问题...

    【讨论】:

    • 可悲的是,这也是我必须做的才能让它工作。
    • 添加 public 关键字对我有用。我将课程移至其他模块,然后 Xcode 在其他模块中无法识别。正如你提到的,我已经花了几个小时尝试上述步骤。谢谢队友:)
    【解决方案4】:

    如果您的类在另一个模块中,请确保您的类和类初始化器具有 public 访问修饰符。

    【讨论】:

      【解决方案5】:

      对我来说,我必须在类中检查与 ViewController 中相同的目标成员资格(我有一个 TodayExtension)

      【讨论】:

        【解决方案6】:

        尝试了所有权切换、清理、重新启动 x-code、删除并重新添加引用但没有结果。

        pod install 为我修复了它,这很奇怪,因为我的课程不是来自另一个模块或库。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-02-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-29
          • 2018-05-02
          • 1970-01-01
          相关资源
          最近更新 更多