在打印时显示的文本视图中可选
Optional in text view showing when printing
大家好,我尝试了一些解决方案,但都不成功。
我正在从 Data Core 获取文本,但文本视图上有可选内容。
当它打印时,它在文本中显示可选。
page22TextView?.text = ("\(trans.value(forKey: "page22"))")
任何人都可以阐明这一点!已尝试打开包装,但它仍然很低:显示。
完整功能如下:
func getTranscriptions () {
//create a fetch request, telling it about the entity
let fetchRequest: NSFetchRequest<TextInputs> = TextInputs.fetchRequest()
do {
//go get the results
let searchResults = try getContext().fetch(fetchRequest)
//I like to check the size of the returned results!
print ("num of results = \(searchResults.count)")
//You need to convert to NSManagedObject to use 'for' loops
for trans in searchResults as [NSManagedObject] {
page22TextView?.text = ("\(trans.value(forKey: "page22"))")
//get the Key Value pairs (although there may be a better way to do that...
print("\(trans.value(forKey: "page22"))")
}
} catch {
print("Error with request: \(error)")
}
}
尝试使用 if let 解包可选,然后分配给您的文本视图(如有必要,然后向下转换您的值)
if let value = trans.value(forKey: "page22") {
page22TextView?.text = value
}
或
use guard for unwrap
尝试设置获取零值的默认值
page22TextView?.text = (trans.value(forKey: "page22") as? String) ?? ""
它将根据 trans
设置您的值,如果它重新运行 nill
将由 ""
设置。
希望对您有所帮助。
尝试使用 if-let 语句:
if let result = trans.value(forKey: "page22") {
page22TextView?.text = result
}
或尝试使用 guard 语句:
guard let result = trans.value(forKey: "page22") else { return }
page22TextView?.text = String(describing: result)
或者您可以强制向上包装,例如:
let result = trans.value(forKey: "page22")
if result != nil {
page22TextView?.text = result! as! String
}
或者您可以按照下面@MrugeshTank 在回答中建议的方式进行操作
大家好,我尝试了一些解决方案,但都不成功。
我正在从 Data Core 获取文本,但文本视图上有可选内容。
当它打印时,它在文本中显示可选。
page22TextView?.text = ("\(trans.value(forKey: "page22"))")
任何人都可以阐明这一点!已尝试打开包装,但它仍然很低:显示。
完整功能如下:
func getTranscriptions () {
//create a fetch request, telling it about the entity
let fetchRequest: NSFetchRequest<TextInputs> = TextInputs.fetchRequest()
do {
//go get the results
let searchResults = try getContext().fetch(fetchRequest)
//I like to check the size of the returned results!
print ("num of results = \(searchResults.count)")
//You need to convert to NSManagedObject to use 'for' loops
for trans in searchResults as [NSManagedObject] {
page22TextView?.text = ("\(trans.value(forKey: "page22"))")
//get the Key Value pairs (although there may be a better way to do that...
print("\(trans.value(forKey: "page22"))")
}
} catch {
print("Error with request: \(error)")
}
}
尝试使用 if let 解包可选,然后分配给您的文本视图(如有必要,然后向下转换您的值)
if let value = trans.value(forKey: "page22") {
page22TextView?.text = value
}
或
use guard for unwrap
尝试设置获取零值的默认值
page22TextView?.text = (trans.value(forKey: "page22") as? String) ?? ""
它将根据 trans
设置您的值,如果它重新运行 nill
将由 ""
设置。
希望对您有所帮助。
尝试使用 if-let 语句:
if let result = trans.value(forKey: "page22") {
page22TextView?.text = result
}
或尝试使用 guard 语句:
guard let result = trans.value(forKey: "page22") else { return }
page22TextView?.text = String(describing: result)
或者您可以强制向上包装,例如:
let result = trans.value(forKey: "page22")
if result != nil {
page22TextView?.text = result! as! String
}
或者您可以按照下面@MrugeshTank 在回答中建议的方式进行操作