我是一名长期的Obj-C开发人员,但对于Swift来说,我和其他所有人一样,并且在这个问题上摸不着头脑。我正在尝试转换用Obj-C编写的旧教程。
我有一个像这样声明的“Animal”类:
class Animal
{
let title: String
let image: UIImage
let creator: String
init(title: String, image: UIImage, creator: String)
{
self.title = title
self.image = image
self.creator = creator
}
}
在另一个类中,我想要一个Animal实例数组,它被声明为该类的属性,如下所示:
let animals: [Animal]
并且如此初始化(失败):
animals = [Animal(title: "Sleeping Cat", image: UIImage.imageNamed("ID-101.jpg")
creator:"papaija2008"),
...
...
]
我在这个数组初始值设定项的第一行得到了一个构建错误,它的读取就像帖子的标题:“Type String不符合协议StringLiteralConvertible”。我们不能将字符串文字分配给String对象吗?这似乎不可能。我违反了什么规则以及如何解决这个问题?
提前致谢!
答案 0 :(得分:3)
使用UIImage(named:)
代替UIImage.imageNamed()
对我有用:
let animals: [Animal] = [Animal(title: "Sleeping Cat", image: UIImage(named: "ID-101.jpg"), creator:"papaija2008")]
我希望它也适合你。