gpt4 book ai didi

arrays - 检索数组功能不起作用

转载 作者:行者123 更新时间:2023-11-30 10:08:31 26 4
gpt4 key购买 nike

我创建了两个名为“保存数组”和“检索数组”的函数,它们的工作是从手机中保存和检索数组。我的问题是他们不工作。这是两个函数。

func SaveArray (array: [IOU],fileID: String){
NSKeyedArchiver.archiveRootObject(array, toFile: fileID)
}
func RetrieveArray (fileID: String, var array: [IOU]) -> [IOU]{
if let arraytoRetrieve = NSKeyedUnarchiver.unarchiveObjectWithFile(fileID) as? [IOU]{
array = arraytoRetrieve
}
return array
}

IOU 是我这样定义的一个类:

class IOU : NSObject, NSCoding {

var Amount : Double
var Payer : String
var Description : String



init (amount: Double, payer: String, description: String){
self.Amount = amount
self.Payer = payer
self.Description = description

super.init()

}

required convenience init(coder decoder: NSCoder){
let amount = decoder.decodeDoubleForKey("amount")
let payer = decoder.decodeObjectForKey("payer") as! String
let description = decoder.decodeObjectForKey("description") as! String
self.init(amount: amount,payer: payer,description: description)
}
func encodeWithCoder(aCoder: NSCoder) {
aCoder.encodeDouble(self.Amount, forKey: "amount")
aCoder.encodeObject(self.Payer, forKey: "payer")
aCoder.encodeObject(self.Description, forKey: "description")
}


}

我在 viewWillAppear 方法中实现了检索函数,如下所示:

Debts = RetrieveArray("Debts", array: Debts)

但由于某种未知的原因,当我运行如下所示的 Playground 测试时,它工作得很好:

var IOUArray : [IOU] = [IOU]()


var example = IOU(amount: 70, payer: "Jackson", description: "Because")
IOUArray.append(example)


func SaveArray (array: [IOU],fileID: String){
NSKeyedArchiver.archiveRootObject(array, toFile: fileID)
}
func RetrieveArray (fileID: String) -> [IOU]{
let IOUA = NSKeyedUnarchiver.unarchiveObjectWithFile(fileID) as! [IOU]
return IOUA
}

SaveArray(IOUArray, fileID: "IOUArray")
RetrieveArray("IOUArray")
print(RetrieveArray("IOUArray")[0].Amount)

最佳答案

方法archiveRootObject中的参数toFile的值和unarchiveObjectWithFile中的参数必须是有效的文件路径。

如果操作成功,

archiveRootObject 返回true,否则返回false

关于arrays - 检索数组功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34627674/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com