iOS SWIFT - 文件存档 - 参数类型“[String?]”:不符合预期类型“AnyObject”

iOS SWIFT - File Archive - Argument Type "[String?]" : does not conform to expected type'AnyObject'

我正在尝试写入存档并收到此错误。

我的技术堆栈是:XCode 7.1 Beta 和 SWIFT。感谢你们中的任何人可以分享解决此问题的确切代码。提前致谢。

参数类型“[String?]”: 不符合预期类型'AnyObject'

@IBAction func saveArch(sender: AnyObject) {

    var contactArray = [name.text, address.text, phone.text]
    NSKeyedArchiver.archiveRootObject(contactArray,
        toFile: dataFilePath!)

}

谢谢

数组不是 AnyObject 类型

你应该试试

NSKeyedArchiver.archiveRootObject(NSArray(array: contactArray),
    toFile: dataFilePath!)

您正在发送不符合 AnyObject 的 swift [] 对象,因为数组和对象在 swift.

中是不同的东西

NSArray 不能包含可选项

您还遇到了可选值的问题:您的 .text 中的一个或全部是 String 类型? (因此它可能为零)。

如果你肯定none这个字段是nil,你可以用

var contactArray = [name.text!, address.text!, phone.text!]

或更改声明。

如果你不确定,你应该这样做

var contactArray = [String]()

for element in [name.text, address.text, phone.text] where element != nil {
    array.append(element!)
}
NSKeyedArchiver.archiveRootObject(NSArray(array: contactArray),
    toFile: dataFilePath!)

这样你只添加非 nil 元素到 contactArray 顺便说一下,Xcode 7.1 已经出来了。无需再使用测试版