我有一个NSObject类
class InventPricing: NSObject {
var quantity: NSNumber = NSNumber(value: 00.00)
var cost: NSNumber = NSNumber(value: 00.00)
var total: NSNumber = NSNumber(value: 00.00)
}
将其保存为数组
let prices = [InventPricing]()
尝试将数组编码为JSON字符串
print("Insert Inv List 1 \(prices) ")
let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted
let info = try! encoder.encode(prices)
print("Insert Inv List 1 \(info ) ")
let str = String(data: info, encoding: .utf8)!
print("Insert Inv List 1 \(str ) ")
在encoder.encode(价格)行上获取错误
致命错误:数组不符合Encodable,因为InventPricing不符合Encodable。:
我能找到的只是编码一个结构而不是一个NSObject类
请帮忙! 提前致谢
答案 0 :(得分:1)
对于类和结构,该过程实际上是相同的,当前模式是使用结构数据模型,但是......
您只需遵守协议:
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
switch (position) {
case 0:
image.setImageResource(R.drawable.item1);
break;
case 1:
image.setImageResource(R.drawable.item2);
break;
default:
//Default image
//image.setImageResource(R.drawable.item2);
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
如果你想双向转换:
class InventPricing: NSObject, Encodable { …
有关详细信息,请查看the documentation。它在所有示例中都使用了结构,但它从未说它只适用于结构并使用术语“类型”,它可以是结构或类。