创建作为自定义类数组的变量时出错

时间:2017-09-30 21:20:29

标签: swift class

我有一个名为Message的自定义类。

import UIKit

class Message {
    var sender: String
    var message: String

    init?(sender: String, message: String) {

        self.sender = sender
        self.message = message
    }
}

我还有一个名为Chat的自定义类,它有一个名为messageList的变量,它是Message类的数组。

class Chat {

    //MARK: Properties
    var name: String
    var image: UIImage?
    var animal: String
    var messageList = [Message]()

    //MARK: Initialisation
    init?(name: String, image: UIImage?, animal: String) {

        if name.isEmpty || animal.isEmpty {
            return nil
         }

        self.name = name
        self.image = image
        self.animal = animal
        let firstMessage = Message(sender: "animal", message: "Hi! Nice meeting you!")
        self.messageList.append(firstMessage)
    }

}

我尝试了很多不同的方法,但是每次声明messageList时都会出现错误:“属性不能标记为@NSManaged,因为它的类型不能用Objective-C表示”或“属性不能声明public,因为它的类型使用内部类型“。

提前谢谢你,

亚历

1 个答案:

答案 0 :(得分:1)

默认情况下,类被声明为内部,因此您必须添加public关键字以使其公开。

import UIKit

public class Message {
    var sender: String
    var message: String

    init?(sender: String, message: String) {

        self.sender = sender
        self.message = message
    }
}