2017-02-02 18 views
0

大家好我已經嘗試了一些解決方案,但沒有運氣。可選的文本視圖顯示何時打印

我從Data Core中獲取文本,但textview中有可選項。

當它打印它顯示在文本中可選。

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)") 
    } 
} 

回答

0

嘗試如果-讓聲明:

if let result = trans.value(forKey: "page22") { 

    page22TextView?.text = result 
} 

或用後衛嘗試聲明:

guard let result = trans.value(forKey: "page22") else { return } 
page22TextView?.text = String(describing: result) 

或者你可以力upwrap它想:

let result = trans.value(forKey: "page22") 

if result != nil { 

    page22TextView?.text = result! as! String 
} 

或者你可以按照@MrugeshTank建議的方式回答下面的問題

+0

嗨,感謝您的幫助,第一個回覆黃色三角形,它表示:在可選項檢查中使用的'String'類型的Nom-optional表達式。第二個我得到了!錯誤的=結果,說不能賦值的任何一個字符串,我試圖添加爲!字符串結尾,第三個如何得到與上面相同的錯誤,但這次我添加了!字符串在結果工作結束,謝謝你,我可以瞭解的不同選項。這是一個很大的幫助 –

+0

我正在更新我的答案,它現在對你有用 –

+0

再次感謝。 –

0

嘗試解開可選使用如果讓然後將分配給您的TextView(如果必要的話,然後垂頭喪氣你的價值)

if let value = trans.value(forKey: "page22") { 
    page22TextView?.text = value 
} 

use guard for unwrap 
+0

嗨,謝謝你的幫助,我試了這個第一部分並得到了同樣的結果,我是新來的這個大約7個月的訓練和避風港't使用後衛很多,所以不知道如何在此使用 –

0

嘗試設置獲取默認值零值

page22TextView?.text = (trans.value(forKey: "page22") as? String) ?? "" 

它會從trans設置你的價值,如果它retrun nill""設置。

希望它能幫助你。

+0

嗨,感謝您的幫助,通過這個我得到了一個黃色的三角形,說:「左邊的零合併操作符?有非可選類型的字符串,所以右側從未使用。編譯結果與以前相同。 –