繁体   English   中英

Xcode 无法识别新的 Swift 类

[英]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

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

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

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

在此处输入图像描述

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

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

我只需要做完整的蒙蒂才能让它工作......

  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。没问题...

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM