Swift 如何将非英语字符保存/提取到核心数据中?

Swift 如何将非英语字符保存/提取到核心数据中?,swift,core-data,Swift,Core Data,我已经使用核心数据成功地添加和获取了一些数据。“我的实体”属性具有以下方案:产品名称、价格和数量 价格和数量在控制台中正确显示。另一方面,产品名称是用阿拉伯语书写的,因此会以奇怪的字符显示,如:“\U062c\U064a\U0628\U0627\U0644\U062a\U0627\U062c\U0631” 保存到核心数据代码: @IBAction func submitOrderButton(_ sender: UIButton) { let newItem = NSEntit

我已经使用核心数据成功地添加和获取了一些数据。“我的实体”属性具有以下方案:产品名称、价格和数量

价格和数量在控制台中正确显示。另一方面,产品名称是用阿拉伯语书写的,因此会以奇怪的字符显示,如:“\U062c\U064a\U0628\U0627\U0644\U062a\U0627\U062c\U0631”

保存到核心数据代码:

   @IBAction func submitOrderButton(_ sender: UIButton) {

    let newItem =  NSEntityDescription.insertNewObject(forEntityName: "OrderDetail", into: context)
    newItem.setValue(String(self.productName.text!), forKey: "productName")
    newItem.setValue(Int(self.productPrice.text!), forKey: "price")
    newItem.setValue(self.orderQuantity, forKey: "quantity")

    do{
        try context.save()
    }
    catch{
        // display in a uialert message
        print("error has occured")
    }
    print("\(orderQuantity) items of this product")

}
    func fetchOrderDetails(){

    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    let context =  appDelegate.persistentContainer.viewContext
    let fetchedOrders = NSFetchRequest<NSFetchRequestResult>(entityName: "OrderDetail")
    fetchedOrders.returnsObjectsAsFaults = false


    do{
        let result = try context.fetch(fetchedOrders)
        if result.count > 0{
            print()
        }
    }
    catch{

    }
}
从核心数据代码获取:

   @IBAction func submitOrderButton(_ sender: UIButton) {

    let newItem =  NSEntityDescription.insertNewObject(forEntityName: "OrderDetail", into: context)
    newItem.setValue(String(self.productName.text!), forKey: "productName")
    newItem.setValue(Int(self.productPrice.text!), forKey: "price")
    newItem.setValue(self.orderQuantity, forKey: "quantity")

    do{
        try context.save()
    }
    catch{
        // display in a uialert message
        print("error has occured")
    }
    print("\(orderQuantity) items of this product")

}
    func fetchOrderDetails(){

    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    let context =  appDelegate.persistentContainer.viewContext
    let fetchedOrders = NSFetchRequest<NSFetchRequestResult>(entityName: "OrderDetail")
    fetchedOrders.returnsObjectsAsFaults = false


    do{
        let result = try context.fetch(fetchedOrders)
        if result.count > 0{
            print()
        }
    }
    catch{

    }
}

这就是Xcode显示特殊字符的方式。你的数据可能很好。如果您试图在标签中显示产品名称会发生什么情况?控制台输出与此无关。打印
productName
或将值指定给标签,然后您将看到正确的字符。是的,你们是对的,我已将值指定给标签,并且正确打印。