繁体   English   中英

字符串不符合NSarray Swift中的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM