当我定义了自己的同名类

时间:2015-10-23 15:22:10

标签: ios swift

我有一个属于自己的班级:

 class Set{...}

我用这个" Set"作为我的基本数据结构。今天我转到UI部分。

我尝试让textField resignFirstRespond,所以我重写了以下函数:

override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?)

你看到&#34; Set&#34;这里有泛型类型?然后问题出现了 - &gt;编者告诉我班级&#34; Set&#34;没有任何通用类型。所以我知道这里的 Set 表示我自己的 Set 类。

关于可能的解决方案,我尝试过: 输入&#34; S&#34;并使用&#34; ESC&#34;为了调用代码推荐器,我点击了正确的课程。但是,无用的它仍然表明了自我设计课程。

所以有人能告诉我如何处理这个问题!谢谢!

b.t.w。我想改变我的班级&#39;也是名字,但它的相对点太多了。我无法相信XCode不能区分具有相同名称的类!

2 个答案:

答案 0 :(得分:2)

来自https://developer.apple.com/library/ios/documentation/Swift

  

Swift的访问控制模型基于模块和概念   源文件。

     

模块是单个代码分发单元 - 框架或   作为单个单元构建和运输的应用程序   由另一个模块使用Swift的import关键字导入。

     

Xcode中的每个构建目标(例如应用程序包或框架)都是   在Swift中被视为一个单独的模块。如果你将方面组合在一起   你的应用程序的代码作为一个独立的框架 - 也许是封装   并在多个应用程序中重用该代码 - 然后是您的一切   在该框架内定义将成为单独模块的一部分   在应用程序中导入和使用,或在其他应用程序中使用时   框架。

     

源文件是模块中的单个Swift源代码文件(in   效果,应用程序或框架中的单个文件)。虽然是   通常在单独的源文件中定义单个类型,单个   源文件可以包含多个类型,函数和的定义   等等。

然后,您可以使用import关键字或MyModule.MyClass来区分具有相同名称的两个类。如果您查看documentation,则会通知Set模块中Swift

override func touchesEnded(touches: Swift.Set<UITouch>, withEvent event: UIEvent?)

答案 1 :(得分:0)

试试Swift.Set<UITouch>。这在一个操场上编译:

import UIKit

class Set { }

class MyView : UIView {

    override func touchesEnded(touches: Swift.Set<UITouch>, withEvent event: UIEvent?) {
    }

}

但实际上,重命名你的班级会更好。