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