【发布时间】:2014-07-12 19:40:04
【问题描述】:
我是一名长期的 Obj-C 开发人员,但和其他人一样,我是 Swift 新手,对此我摸不着头脑。我正在尝试转换用 Obj-C 编写的旧教程。
我有一个像这样声明的“动物”类:
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 对象吗?这似乎是不可能的。我违反了什么规则,我该如何解决?
提前致谢!
【问题讨论】:
-
我经常看到这个错误出现,这通常并不意味着与字符串相关的某些东西是错误的。通常,您传递给函数的某些参数在某种程度上是不正确的。我已经通过为每个相关参数使用带有显式类型的
let然后传入这些变量来解决此类问题。编译器通常会以这种方式给出更有用的错误消息。
标签: swift