![](/img/trans.png)
[英]type [String: String] does not conform to protocol 'AnyObject'
[英]String does not conform to type AnyObject in NSarray Swift
我正在迅速创建一个自定义对象。 该对象的属性之一是数组,旨在包含字符串:
Exersice (name: "Test", type: "Test", muscles: NSArray(objects: "muscle1", "muscle2"), descriptionString: "Test", pace: true, sets: 1, reps: NSMutableArray(15, 12, 12), time: false, duration: 0)
这是问题所在的部分:
muscles: NSArray(objects: "muscle1", "muscle2")
我不断出现错误:
String does not conform to type AnyObject
我只是不明白为什么。 在网上四处浏览会显示此错误的许多情况,但在这种情况下没有发现,也无助于解决此问题。
我如何摆脱这个错误? 任何帮助将不胜感激
NSArray
只能保存引用类型,而Swift的String
是一个值类型。 字符串实例通常会自动桥接到NSString
,但是您用于NSArray
的构造函数明确希望使用AnyObject
,从而AnyObject
了这种桥接。 您应该可以改用Swift Array
:
Exersice (name: "Test", type: "Test", muscles: ["muscle1", "muscle2"], ...
这里的问题不是NSArray(objects: "muscle1", "muscle2")
,而是这样的:
NSMutableArray(15, 12, 12)
这应该是
NSMutableArray(objects: 15, 12, 12)
但是,正如@NateCook在他的回答中所说,您应该使用Swift Array
。
如果您的Exersice类仍然希望使用String数组,请确保初始化程序声明它接受了String数组
init(name: String, type: String, muscles: [String]) {}
这样,内特的答案就足够了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.