在ViewController中调用函数但参数似乎错误

时间:2015-10-28 02:10:41

标签: ios swift generics

我创建了一个自定义类来保存NSUserDefaults中的产品数组,但是当我在我的ViewController中进行测试时,我总是使用Xcode 7.1中的自动完成来实现这一点

function

函数 saveToFile loadFromFile 始终将self: DataFile显示为唯一参数。

这是我的DataFile类

import Foundation

class DataFile {
    let userDefaults = NSUserDefaults.standardUserDefaults()

    func saveToFile<T>(object: [T], key: String) -> String {
        let encodedData = NSKeyedArchiver.archivedDataWithRootObject(object as! AnyObject)

        self.userDefaults.setObject(encodedData, forKey: key)
        self.userDefaults.synchronize()

        return "oi"
    }

    func loadFromFile<T>(key: String) -> [T]? {
        let decoded = self.userDefaults.objectForKey(key) as! NSData

        if let decodedProducts = NSKeyedUnarchiver.unarchiveObjectWithData(decoded) as? [T] {
            return decodedProducts
        }

        return nil
    }
}

我做错了什么?

谢谢

1 个答案:

答案 0 :(得分:0)

您的funcs不是静态函数,因此,您必须创建对象才能使用这些函数。

let xxx = DataFile()
xxx.loadFromFile(<#T##key: String##String#>)