2015-11-01 64 views
3

代码:参数类型“[?字符串]”不符合预期型“AnyObject”

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是一个非可选值,我不能强迫它解开,我该怎么办?

回答

4

你是对的,contactArray不是可选的;这是一个可选项。你需要解开阵列的每个元素为您构建它,例如:

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

而且,除非你打算以后修改数组,你应该使用let而不是var,以确保它不能被修改。

0

AnyObject只能用于类 因此:

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

只是让你的阵列型NSArray

相关问题