我正在尝试将数字放入核心数据中,然后将其检索回来。我已经可以使用字符串这一切都很好但是尝试用双打它似乎存储它们但不检索它们。以下是我的代码。我希望有人可以提供帮助,如果可以,请提前感谢。
要回头......
func getTranscriptions18CW () {
let fetchRequest: NSFetchRequest<TextInputs> = TextInputs.fetchRequest()
do {
//go get the results
let searchResults18CW = try getContext().fetch(fetchRequest)
if indexPageSum == 18 {
for trans in searchResults18CW as [NSManagedObject] {
let result = trans.value(forKey: "cWeight")
if result != nil {
CWeight.text = result! as? String
}
}
}
}catch {
print("Error with request: \(error)")
}
}
然后保存。
func getContext () -> NSManagedObjectContext {
_ = UIApplication.shared.delegate as! AppDelegate
return DataController().managedObjectContext
}
func storeTranscription18CW (pageText: Double, textFileUrlString: String) {
let context = getContext()
//retrieve the entity that we just created
let entity = NSEntityDescription.entity(forEntityName: "TextInputs", in: context)
let transc = NSManagedObject(entity: entity!, insertInto: context)
// set the entity values
if indexPageSum == 18 {
transc.setValue(pageText, forKey: "cWeight")
}
//save the object
do {
try context.save()
print("saved!")
} catch let error as NSError {
print("Could not save \(error), \(error.userInfo)")
} catch {
}
}
然后另一部分要保存。
if indexPageSum == 18 {
let CWConvert = Double(CWeight.text!)
storeTranscription18CW(pageText: (CWConvert)!, textFileUrlString: "cWeight")
答案 0 :(得分:0)
表达式:
result! as? String
基本上意味着&#34;如果result
属于String
类型,则返回它,否则返回nil
&#34;。这适用于存储在数据库中的String
,但会将nil
分配给CWeight.text
以获取其他任何内容。
您需要以下内容:
if let result = trans.value(forKey: "cWeight") {
if let str = result as? String {
CWeight.text = str
}
else {
CWeight.text = "\(result)"
}
}
这适用于最常见的数据类型。表达式"\(result)"
使用字符串插值将result
中存储的值转换为适当的字符串。
您可能还想研究生成NSManagedObject
子类以使其更易于处理。