参数类型' [String?]'不符合预期的类型' AnyObject'

时间:2015-11-01 03:10:37

标签: ios swift

代码:

var contactArray = [nameField.text, addressField.text, phoneField.text]
NSKeyedArchiver.archiveRootObject(contactArray, toFile: dataFilePath!)
//Error on contactArray: Argument type '[String?]' does not conform to expected type 'AnyObject'

由于contactArray是非可选值,我无法强行打开它,我该怎么办?

2 个答案:

答案 0 :(得分:4)

你是对的contactArray不是可选的;它是一个选项数组。你需要在构造时解开数组的每个元素,例如:

var contactArray = [nameField.text!, addressField.text!, phoneField.text!]

此外,除非您计划稍后修改该数组,否则应使用let代替var以确保无法修改该数组。

答案 1 :(得分:0)

AnyObject只能用于课程 因此:

var contactArray : NSArray = [nameField.text, addressField.text, phoneField.text];

只需输入数组类型NSArray

即可