Xcode won't recognize a new Swift class

我在一个新文件中创建了一个新的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

But Xcode is giving me the error “Use of undeclared type RecordedAudio” so I got stuck there. A similar question has been posted here: 我如何从另一个SWIFT文件导入SWIFT文件?
but none of those solutions worked for me. BTW, this is part of the Udacity swift class. Thanks, any help would be appreciated.

sometimes,您需要的只是重启Xcode。⌘Q.Tuit Xcode,然后重新开放,看看问题是否仍然存在。6 Erekhayser
对于我而言,有时我必须重新启动4-5次,漂亮的车辆Brennan Adler
谢谢回复家伙,我确实重新启动了几次Xcode但不起作用。SAM J
CREAN,CMD + K为我工作tibidabo

回答 6

  1. 赞同 56

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

    now,在右侧的文件检查器中,查看目标成员资格。应用目标(不是测试目标)应该是Checked.,类似于这个:

    enter image description here

    If not, check it! And now all will be well.

    Matt
    谢谢马特,工作。在新课堂上,我同时检查了“目标”和“测试目标”,所以我未选中“测试目标”并保持“目标”。这是诀窍。SAM J
    对于未来的读者,还要尝试取消选中并再次检查目标,然后再次检查目标。Supercodebrah
  2. 赞同 4

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

    Lukas Kalinski
  3. 赞同 4

    I just had to do the Full Monty to get it to work...

    1. RET OUT OUT参考线条
    2. FIX其他错误以确保构建
    3. cmd + shft + k(干净构建文件夹)
    4. Nay ...让我们删除Build文件夹:/用户/ [您] /库/开发人员/ Xcode / DerivedData / Project-Name-Adm2KD ...
    5. Restart Xcode.
    6. Build.
    7. 根据我们的引用行

    也许将@objc添加到课堂上的行上方,并且可能使其成为public class要明确和可能的补充public您的方法也是如此。哦,确保你是子类化NSObject.

    If you are stuck getting your initialiser to show up, I've also just noticed that Swift 4.2 has lots more problems here. I switched back to Swift 3. No problems...

    Hari荣誉
    也就是说,这就是我必须做的事情来完成工作。KeithThe Biped
    一种公共关键字对我来说是伎俩。我将类移动到其他模块,然后Xcode将无法在其他模块中识别。我花了很长时间尝试上述步骤,就像你提到的那样。谢了哥们 :)Ahmed
  4. 赞同 2

    If your class is in another Module, please make sure that your class and the class initializers have the 公共Access修饰符。

    ERAY ALPARSLAN
  5. 赞同 1

    对于我来说,我必须在viewController中检查类上的同一目标成员资格(我有一个今天的大小)

    Nicklas Mandrup Frederiksen
  6. 赞同 0

    TRIED所有权切换,清理,重新启动X代码,删除和重新添加参考,但没有结果。

    A.pod install修复了我,因为我的课程不是来自另一个模块或图书馆的奇怪。

    C kontos