ios - 使用未解析的标识符?

标签 ios swift tableview

我在四个不同的地方得到 Use of unresolved identifier "Rule"
var ruleslet rule1let rule2let rule3 处。
我做错了什么?

class RulesTableViewController: UITableViewController {

    var rules = [Rule]()
    let cellIdentifier = "TableViewCell"

    override func viewDidLoad() {
        super.viewDidLoad()

        loadRulesData()
    }

    func loadRulesData() {
        let photo1 = UIImage(named: "card1")!
        let rule1 = Rule(name: "Waterfall", photo: photo1, description: "Every player begins drinking, starting with the player who drew the card and continuing in the direction of play. No one can stop drinking until the player before them does.")!

        let photo2 = UIImage(named: "card2")!
        let rule2 = Rule(name: "You", photo: photo2, description: "Player picks someone to drink.")!

        let photo3 = UIImage(named: "card3")!
        let rule3 = Rule(name: "Me", photo: photo3, description: "Player drinks.")!

        rules += [rule1, rule2, rule3] 
    }
}

最佳答案

如果在框架中定义了Rule,则必须将其标记为public,以便您使用它。
如果它在同一模块中定义,则必须将其标记为 internal(Swift 隐式地​​这样做)或 public

我假设 Rule 是在同一个模块中定义的。因此,重新启动 Xcode 可能会有所帮助。
如果没有进一步的信息,很难说出问题所在。

更新:

所以,我假设您的项目看起来像这样:

Project

Rule.swift(或项目中的任何文件)中,您必须定义类型 Rule。例如,它可能看起来像这样:

Rule.swift

如果您还没有定义类型 Rule,您可能需要阅读 Swift Programming Language Book , 在继续之前。

关于ios - 使用未解析的标识符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35116009/

相关文章:

ios - 我的 iPhone 3G 无法从 Xcode5 中选择为目标。这可以修复吗?

iOS - 如何使用泛型在类上遵守 NSItemProviderWriting 和 NSItemProviderReading 协议(protocol)

iphone - iOS 修复 TableView 到底部,如消息应用程序

RLMLinkingObjects 的 iOS 谓词( Realm )

ios - 立即调用 UITapGestureRecognizer

ios - 无法使用 XCode 9.3 将 Xamarin.iOS 应用程序部署到设备

ios - 点击 XIB 文件内的 UIButton 时如何执行 segue

swift - 将 Swift 变量名转换为字符串,用作字符串?

JavaFX:从 tableview 中删除空行

ios - UITableView + 2 个自定义单元格 = 高度错误