Swift 2.0 / Xcode 7B5 - 类 只有放在某个文件中才能找到
Swift 2.0 / Xcode 7B5 - Classes can only be found if put in a certain file
我注意到在给定的点上找不到 class 用户,而我想在其他 classes 中使用它。没有什么可疑的。在给定的时间点,我开始试验我把代码放在哪里。
如果我将所有这些 classes 放在我的一个旧文件中,所有编译。如果我将它们全部放在一个较新的文件中,则使用这些 classes 的代码的其他部分将无法编译。如果我重命名一个文件(例如,从 User.swift 到 AUser.Swift),什么都没有改变,这意味着编译的内容会继续编译,而没有编译的内容仍然不会根据名称进行编译。好像真的是文件的年龄之类的。
似乎我稍后添加的与这个特定的 classes 集群相关的所有内容都不会编译到较新的文件中。构建时包含这些文件,我检查过。代码我觉得没什么奇怪的:
import UIKit
public class User: AddressBookContact {
var home: Home?
var friends = [Friend]()
}
public class Friend: AddressBookContact {
}
class Session: NSObject {
private static let instance = Session()
override private init() {
super.init()
}
class func sharedInstance() -> Session {
return instance
}
static var loggedInUser: User?
}
查看“文件检查器实用程序”窗格(右侧窗格)。有问题的文件可能不是目标的成员。
我注意到在给定的点上找不到 class 用户,而我想在其他 classes 中使用它。没有什么可疑的。在给定的时间点,我开始试验我把代码放在哪里。
如果我将所有这些 classes 放在我的一个旧文件中,所有编译。如果我将它们全部放在一个较新的文件中,则使用这些 classes 的代码的其他部分将无法编译。如果我重命名一个文件(例如,从 User.swift 到 AUser.Swift),什么都没有改变,这意味着编译的内容会继续编译,而没有编译的内容仍然不会根据名称进行编译。好像真的是文件的年龄之类的。
似乎我稍后添加的与这个特定的 classes 集群相关的所有内容都不会编译到较新的文件中。构建时包含这些文件,我检查过。代码我觉得没什么奇怪的:
import UIKit
public class User: AddressBookContact {
var home: Home?
var friends = [Friend]()
}
public class Friend: AddressBookContact {
}
class Session: NSObject {
private static let instance = Session()
override private init() {
super.init()
}
class func sharedInstance() -> Session {
return instance
}
static var loggedInUser: User?
}
查看“文件检查器实用程序”窗格(右侧窗格)。有问题的文件可能不是目标的成员。