String Swift-从岩心数据中获取字符串并转换为UTF8

String Swift-从岩心数据中获取字符串并转换为UTF8,string,core-data,swift,String,Core Data,Swift,我试图获取“content”的字符串,但是当我执行代码时,应用程序崩溃了。。。当我尝试使用self.content.text=“\(theText)”时,它可以工作,但我想编码为UTF8,因为我使用西里尔语,我得到了类似的\U0421\U044a\U0434\U044a\U0440\U0436\U0430\U043d\U0438\U0435\U043d\U0430\U043f\U0438\U0449\U043e\U0432\U0430谁能解决这个问题 代码如下: let appDel:

我试图获取“content”的字符串,但是当我执行代码时,应用程序崩溃了。。。当我尝试使用
self.content.text=“\(theText)”
时,它可以工作,但我想编码为UTF8,因为我使用西里尔语,我得到了类似的
\U0421\U044a\U0434\U044a\U0440\U0436\U0430\U043d\U0438\U0435\U043d\U0430\U043f\U0438\U0449\U043e\U0432\U0430
谁能解决这个问题

代码如下:

     let appDel: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
        let context: NSManagedObjectContext = appDel.managedObjectContext
        let theReq = NSFetchRequest(entityName: "Entity1")
        theReq.returnsObjectsAsFaults = false
        let myPredicate = NSPredicate(format: "objectId == \"\(contentID)\"")
        theReq.predicate = myPredicate
        let executed:AnyObject = context.executeFetchRequest(theReq, error: nil) as Array
        let theText : AnyObject = executed.valueForKey("content")
        self.content.text = theText

这与编码问题无关

  • executeFetchRequest()
    返回托管对象的数组
  • 对该数组应用
    valueForKey()
    ,将返回一个值数组
  • 打印数组的描述将对所有数组使用转义序列 非ASCII字符
因此,解决方案应该很简单:从获取的数组中选择一个元素:

let executed = context.executeFetchRequest(theReq, error: nil)[0] as NSManagedObject
let theText = executed.valueForKey("content") as String
self.content.text = theText
当然,还应该检查提取是否成功或失败,以及是否返回 任何物体。更详细的版本如下所示:

var error : NSError?
let result = context.executeFetchRequest(theReq, error: &error)
if !result  {
    println("fetch failed: \(error)")
} else if result.count == 0 {
    println("nothing found")
} else {
    let obj = result[0] as NSManagedObject
    let theText = obj.valueForKey("timeStamp") as String
    self.content.text = theText
}