Xcode 看不到 swift 子类

Posted

技术标签:

【中文标题】Xcode 看不到 swift 子类【英文标题】:Xcode can't see swift subclass 【发布时间】:2015-02-05 23:22:35 【问题描述】:

我对 UIScrollView 进行了子类化以添加一些关于滚动和按钮的功能,而 Xcode 无论如何都无法看到我的子类。

let scrollView = CustomScrollView()

只是给我一个“使用未解析的标识符'CustomScrollView'”错误。我已经清理了项目,重新启动了 Xcode,并且该类肯定已添加到我的项目目标中,所以我不太确定发生了什么。以下是 CustomScrollView 类中的所有代码:

import UIKit

class CustomScrollView: UIScrollView 

  override func touchesShouldBegin(touches: NSSet!,
    withEvent event: UIEvent!,
    inContentView view: UIView!) -> Bool
  
    if (view .isKindOfClass(UIButton))
    
      return true
    

    else
    
      return super.touchesShouldCancelInContentView(view)
    
  


【问题讨论】:

【参考方案1】:

检查事项:

    文件包含在目标中。 (您表示已完成。) 确保它在同一个模块中。 (或尝试将其公开。) 使用类编译文件成功。

您是否尝试过从声明它的文件中访问它?

【讨论】:

你提到的一切都是应该的,我最终将它从目标中删除,然后读取它,然后它就起作用了......我猜只是那些奇怪的事情之一 我会留下答案,因为它可能对其他人有帮助。以前没有见过 Xcode 这样做,但我在 Interface Builder 中看到过类似的事情,其中​​移动某些东西并将其移回恢复正确的行为,所以我并不完全震惊。【参考方案2】:

我想自己解决一个类似的问题。

我创建了一个类,并以某种方式将它保存在 Base.lproj 中。对于这个项目,我实际上并没有在那里创建任何其他文件,所以我不知道为什么它切换到保存在那里(但我可能在不同的项目中使用过 Base.lproj)。

将源移回主文件夹,添加回项目,然后再移至目标,一切都恢复正常。

【讨论】:

以上是关于Xcode 看不到 swift 子类的主要内容,如果未能解决你的问题,请参考以下文章

在swift中子类化'PDFView' - 找不到接口声明

Xcode 找不到 ProductModuleName-Swift.h

在 CoreData 中使用 NSManagedObject 子类找不到 xcode8 标头

为啥找不到 Swift 4 语言的 Xcode 目标 c 接口标题名称

Xcode 7.3 找不到“Project-Swift.h”文件

`attemptRecovery(fromError:optionIndex:)` 在 NSDocument 的 Swift 子类的超类中找不到