【发布时间】:2021-12-26 14:19:13
【问题描述】:
我必须闲置 Realm 对象
import Foundation
import RealmSwift
class CartMeal: Object {
@objc dynamic var id = 0
@objc dynamic var name = ""
@objc dynamic var qty = 0
@objc dynamic var price = 0
}
我的控制器尝试将 CartMeal 的数组发布到 API,如下所示
class CartView: UIViewController , UITableViewDelegate,UITableViewDataSource {
var cartMeals = [CartMeal]()
override func viewDidLoad() {
super.viewDidLoad()
fetchData()
}
func fetchData(){
let mealCount = RealmManager.instance.getCartMeal().count
print(mealCount)
if(mealCount == 0){
}else{
self.cartMeals.append(contentsOf: RealmManager.instance.getCartMeal())
}
}
@objc func confirmOrder(){
let url = URL(string: "http://192.1xxxxxxx/StoreResOrder")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let param : [String : Any] = ["meals" : cartMeals]
request.httpBody = try? JSONSerialization.data(withJSONObject: param, options: [])
let configuration = URLSessionConfiguration.default
configuration.timeoutIntervalForRequest = TimeInterval(30)
configuration.timeoutIntervalForResource = TimeInterval(30)
let session = URLSession(configuration: configuration)
let task = session.dataTask(with: request) { (data, urlResponse, error) in
if(error != nil){
DispatchQueue.main.async { ....
但我收到以下错误
'NSInvalidArgumentException', reason: 'Invalid type in JSON write (RLM:Managed 0 CartMeal)'
如何解决这个问题,任何想法将不胜感激
【问题讨论】:
-
发布问题时,重要的是要包括您的故障排除以及引发错误的行。最佳实践是添加断点并逐行检查变量和代码流。当某些事情不符合预期时,请包含代码,错误所在的行是您期望它执行的操作。截至目前,您在 JSON 写入中出现错误(与 Realm 无关),但我们不知道该错误发生在哪里。
-
*.com/questions/32023249/… 你可以做`试试? JSONSerialization.data(withJSONObject: someCartMealInstance, options: [])` 我猜它会失败。